Exemplo n.º 1
0
        /// <summary>
        /// Called when the object is hit.
        /// </summary>
        /// <param name="transformHitting">The transform hitting.</param>
        public void Hit(Transform transformHitting)
        {
            var xoffset = transform.position.x - transformHitting.position.x + 0.5f;
            var zoffset = transform.position.z - transformHitting.position.z + 0.5f;

            MovablePosistion.Directions hittingDir = MovablePosistion.Directions.Unknown;

            Debug.Log(GetComponent <Collider>().bounds.size.x / 2 + transformHitting.GetComponent <Collider>().bounds.size.x);
            Debug.Log(xoffset);

            if (xoffset > GetComponent <Collider>().bounds.size.x / 2 - transformHitting.GetComponent <Collider>().bounds.size.x)
            {
                hittingDir = MovablePosistion.Directions.Left;
            }
            else if (xoffset < -GetComponent <Collider>().bounds.size.x / 2 + transformHitting.GetComponent <Collider>().bounds.size.x)
            {
                hittingDir = MovablePosistion.Directions.Right;
            }
            else if (zoffset > GetComponent <Collider>().bounds.size.z / 2 - transformHitting.GetComponent <Collider>().bounds.size.z)
            {
                hittingDir = MovablePosistion.Directions.Down;
            }
            else if (zoffset < -GetComponent <Collider>().bounds.size.z / 2 + transformHitting.GetComponent <Collider>().bounds.size.z)
            {
                hittingDir = MovablePosistion.Directions.Up;
            }

            if (hittingDir == MovablePosistion.Directions.Unknown)
            {
                return;
            }


            Debug.Log(hittingDir);

            if (hittingDir == Posistions[_currentPosistion].DirectionForward && _currentPosistion + 1 <= Posistions.Count - 1 &&
                Posistions[_currentPosistion + 1].DirectionBackward == Posistions[_currentPosistion].DirectionForward)
            {
                _currentPosistion++;
                LeanTween.move(gameObject, Posistions[_currentPosistion].Posistion.position,
                               Posistions[_currentPosistion].TimeToMove).setOnComplete(() =>
                {
                    UnityEngine.Camera.main.gameObject.GetComponent <CameraFunctions>().Shake(0.05f, 0.2f);
                    UnityEngine.Camera.main.gameObject.GetComponent <CameraFunctions>().FOVKick(2.0f, 0.2f);
                });
            }
            else if (hittingDir == GetOppisiteDirection(Posistions[_currentPosistion].DirectionBackward) && _currentPosistion - 1 >= 0 &&
                     Posistions[_currentPosistion - 1].DirectionForward == Posistions[_currentPosistion].DirectionBackward)
            {
                _currentPosistion--;
                LeanTween.move(gameObject, Posistions[_currentPosistion].Posistion.position,
                               Posistions[_currentPosistion].TimeToMove).setOnComplete(() =>
                {
                    UnityEngine.Camera.main.gameObject.GetComponent <CameraFunctions>().Shake(0.05f, 0.2f);
                    UnityEngine.Camera.main.gameObject.GetComponent <CameraFunctions>().FOVKick(3.0f, 0.2f);
                });
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the oppisite direction.
        /// </summary>
        /// <param name="direction">The direction.</param>
        /// <returns>The oppisite direction</returns>
        private MovablePosistion.Directions GetOppisiteDirection(MovablePosistion.Directions direction)
        {
            switch (direction)
            {
            case MovablePosistion.Directions.Left:
                return(MovablePosistion.Directions.Right);

            case MovablePosistion.Directions.Right:
                return(MovablePosistion.Directions.Left);

            case MovablePosistion.Directions.Down:
                return(MovablePosistion.Directions.Up);

            case MovablePosistion.Directions.Up:
                return(MovablePosistion.Directions.Down);

            default: return(MovablePosistion.Directions.Unknown);
            }
        }