Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
// 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);
                        }
                    }
                }
            }
        }