public override void Tick() { if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit = WadeUtils.RaycastAndGetInfo(ray, navLayer, Mathf.Infinity); if (hit.transform) { if (hit.transform.CompareTag("Target")) { target = hit.transform; } else if (hit.transform.CompareTag("Environment")) { target = null; navMeshAgent.SetDestination(hit.point); } } } if (target && Time.frameCount % 30 == 0) { navMeshAgent.SetDestination(target.position); } }
public override void Reason(Entity entity) { if (entity is Enemy) { if (((Enemy)entity).patrolTime < 3.0f) { return; } } Ray ray = new Ray(entity.transform.position, entity.transform.forward); RaycastHit hit = WadeUtils.RaycastAndGetInfo(ray, entity.lookDistance); if (!hit.transform) { return; } if (hit.transform.CompareTag("Player") || hit.transform.CompareTag("Helper")) { entity.target = hit.transform.gameObject; entity.DoStateTransition(EntityTransition.TargetSpotted); } }