protected override void Update() { Vector3 savedDir = m_phyChar.Dir; base.Update(); m_phyChar.Dir = savedDir; m_tileMovementBehaviour.enabled = (Vehicle == null); if (m_tileMovementBehaviour.enabled) { if (Input.GetKey(KeyCode.RightArrow)) { m_tileMovementBehaviour.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveRight); } else if (Input.GetKey(KeyCode.LeftArrow)) { m_tileMovementBehaviour.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveLeft); } else if (Input.GetKey(KeyCode.UpArrow)) { m_tileMovementBehaviour.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveUp); } else if (Input.GetKey(KeyCode.DownArrow)) { m_tileMovementBehaviour.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveDown); } } }
// Update is called once per frame void LateUpdate() { curr = this.transform.position; targetTile = spawnTile; //Is the player close enough to trigger AI? GameObject[] players = GameObject.FindGameObjectsWithTag("Player"); int i = 0; for (i = 0; i < players.Length; i++) { if ((curr - players [i].transform.position).magnitude <2f && (this.transform.position - players [i].transform.position).magnitude> .30f) { targetTile = players [i].transform.position; foundTarg = true; break; } } if (foundTarg) { //Find best move to reach goal move = findPath(); //Ajust decision to activate movement system if (curr.x + move.x != targetTile.x + .3f || curr.x + move.x != targetTile.x - .3f || curr.y + move.y != targetTile.y + .3f || curr.y + move.y != targetTile.y - .3f) { m_animCtrl.SetAnimDirection(new Vector2(move.x, move.y)); if (Mathf.Abs(move.y) >= Mathf.Abs(move.x) && move.y > 0) { tmov.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveUp); } else if (Mathf.Abs(move.y) >= Mathf.Abs(move.x) && move.y < 0) { tmov.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveDown); } else if (Mathf.Abs(move.y) <= Mathf.Abs(move.x) && move.x < 0) { tmov.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveLeft); } else if (Mathf.Abs(move.y) <= Mathf.Abs(move.x) && move.x > 0) { tmov.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveRight); } } } }
protected override void Update() { int tileIdx = RpgMapHelper.GetTileIdxByPosition(transform.position); if (tileIdx != m_lastTileIdx || m_lastFogSightLength != FogSightLength) { RpgMapHelper.RemoveFogOfWarWithFade(transform.position, FogSightLength); } m_lastFogSightLength = FogSightLength; m_lastTileIdx = tileIdx; if (teleporting == true && UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == newScene) { teleporting = false; teleport(); } Vector3 savedDir = m_phyChar.Dir; m_phyChar.Dir = savedDir; m_tileMovementBehaviour.enabled = (Vehicle == null); //DirectionalAnimation[] anims = GetComponentsInChildren<DirectionalAnimation> (); if (m_tileMovementBehaviour.enabled) { if (Input.GetKey(KeyCode.Space) && canMove) { attack.enabled = true; attack.SetAnimDirection(currDir); attack.IsPlaying = true; attacking(); attack.OnAnimationLoopOver += reset; canMove = false; } else if (canMove) { if (Input.GetKey(KeyCode.RightArrow)) { if (Input.GetAxis("Horizontal") < .2) { m_animCtrl.SetAnimDirection(Vector3.right); currDir = Vector3.right; // for (int i = 0; i < anims.Length; i++) { // // anims[i].SetAnimDirection(Vector3.right); // } } else { m_animCtrl.SetAnimDirection(Vector3.right); currDir = Vector3.right; m_tileMovementBehaviour.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveRight); } } else if (Input.GetKey(KeyCode.LeftArrow)) { if (Mathf.Abs(Input.GetAxis("Horizontal")) < .2) { m_animCtrl.SetAnimDirection(Vector3.left); currDir = Vector3.left; // for (int i = 0; i < anims.Length; i++) { // // anims[i].SetAnimDirection(Vector3.left); // } } else { m_animCtrl.SetAnimDirection(Vector3.left); currDir = Vector3.left; m_tileMovementBehaviour.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveLeft); } } else if (Input.GetKey(KeyCode.UpArrow)) { if (Input.GetAxis("Vertical") < .2) { m_animCtrl.SetAnimDirection(Vector3.up); currDir = Vector3.up; // for (int i = 0; i < anims.Length; i++) { // // anims[i].SetAnimDirection(Vector3.up); // } } else { m_animCtrl.SetAnimDirection(Vector3.up); currDir = Vector3.up; m_tileMovementBehaviour.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveUp); } } else if (Input.GetKey(KeyCode.DownArrow)) { if (Mathf.Abs(Input.GetAxis("Vertical")) < .2) { m_animCtrl.SetAnimDirection(Vector3.down); currDir = Vector3.down; // for (int i = 0; i < anims.Length; i++) { // // anims[i].SetAnimDirection(Vector3.down); // } } else { m_animCtrl.SetAnimDirection(Vector3.down); currDir = Vector3.down; m_tileMovementBehaviour.ActivateTrigger(TileMovementBehaviour.eTrigger.MoveDown); } } } } }