protected override void Update() { timer += Time.deltaTime; if (timer >= _freezeTime) { sm.SendInput(TrueDummyEnemy.DummyEnemyInputs.IDLE); timer = 0; } //de aca para abajo es el follow normal menos un calculo al final if (GetMyPos() == null) { if (noObs.CurrentTarget() != null) { Vector3 dirForward = (noObs.CurrentTarget().transform.position - root.position).normalized; Vector3 fowardRotation = new Vector3(dirForward.x, 0, dirForward.z); ObstacleAvoidance(fowardRotation); // if (Vector3.Distance(noObs.CurrentTarget().transform.position, root.position) <= normalDistance) // sm.SendInput(TrueDummyEnemy.DummyEnemyInputs.IDLE); } } else { Vector3 dir = GetMyPos().position - root.position; dir.Normalize(); Vector3 dirFix = new Vector3(dir.x, 0, dir.z); ObstacleAvoidance(dirFix); float distanceX = Mathf.Abs(GetMyPos().transform.position.x - root.position.x); float distanceZ = Mathf.Abs(GetMyPos().transform.position.z - root.position.z); if (distanceX < 0.7f && distanceZ < 0.7f) { //sm.SendInput(TrueDummyEnemy.DummyEnemyInputs.IDLE); } } }
protected override void Update() { base.Update(); if (GetMyPos() == null) { if (noObs.CurrentTarget() != null) { Vector3 dirForward = (noObs.CurrentTarget().transform.position - root.position).normalized; Vector3 fowardRotation = new Vector3(dirForward.x, 0, dirForward.z); ObstacleAvoidance(fowardRotation); if (Vector3.Distance(noObs.CurrentTarget().transform.position, root.position) <= normalDistance) { sm.SendInput(TrueDummyEnemy.DummyEnemyInputs.IDLE); } } } else { Vector3 dir = GetMyPos().position - root.position; dir.Normalize(); Vector3 dirFix = new Vector3(dir.x, 0, dir.z); ObstacleAvoidance(dirFix); float distanceX = Mathf.Abs(GetMyPos().transform.position.x - root.position.x); float distanceZ = Mathf.Abs(GetMyPos().transform.position.z - root.position.z); if (distanceX < 0.7f && distanceZ < 0.7f) { sm.SendInput(TrueDummyEnemy.DummyEnemyInputs.IDLE); } } }