public class AIController : MonoBehaviour
{
// Code เดิม
public int GetHealth()
{
return currentHealth;
}
}
void Update()
{
shootCountTime -= Time.deltaTime;
isReadyToShoot = shootCountTime <= 0f;
if (currentBullet <= 0)
{
// reload
StartCoroutine(Reload());
return;
}
if (CrossPlatformInputManager.GetButton("Fire") && isReadyToShoot && !isReload)
{
GameObject obj = ObjectPooling.current.GetPooledObject();
if (obj == null)
{
return;
}
obj.transform.position = bulletPosition.position;
obj.transform.rotation = bulletPosition.rotation;
obj.SetActive(true);
shootCountTime = shootDelayTime;
--currentBullet;
}
if (CrossPlatformInputManager.GetButtonDown("Reload") && !isReload)
{
// reload
StartCoroutine(Reload());
}
uiController.SetPlayerHealth(playerHelath);
uiController.SetBullet(currentBullet, bulletPerMag);
CheckAutoLockTarget();
}
private void CheckAutoLockTarget()
{
Collider[] colliders = Physics.OverlapSphere(transform.position, autoLockDist, targetMask);
if (colliders.Length == 0)
{
return;
}
// get closest target
target = colliders.OrderBy(s => Vector3.Distance(transform.position, s.transform.position))
.Select(s => s.transform).First();
AIController ai = target.GetComponent<AIController>();
if (ai.GetHealth() <= 0)
{
isLockTarget = false;
return;
}
isLockTarget = true;
LockTarget();
}
void OnTriggerEnter(Collider hit)
{
if (hit.CompareTag("Heal"))
{
// heal player
playerHelath += 10;
Destroy(hit.gameObject);
}
else if (hit.CompareTag("Ammo"))
{
// add ammo
bulletPerMag += 2;
Destroy(hit.gameObject);
}
}
ปล. มีอะไรแนะนำได้นะครับ
NO GAME NO DREAM !!!!