예제 #1
0
        /// <summary>
        /// Fires when the state exits, before the next state is entered into.
        /// </summary>
        public override void OnStateExit()
        {
            player.StartWallJumpMuting();

            float leftDist  = player.DistanceToLeftWall();
            float rightDist = player.DistanceToRightWall();

            if (player.IsTouchingLeftWall() || leftDist < rightDist)
            {
                physics.Velocity = settings.WallJump;
            }
            else if (player.IsTouchingRightWall() || rightDist >= leftDist)
            {
                physics.Velocity = new Vector2(-settings.WallJump.x, settings.WallJump.y);
            }

            if (cam == null)
            {
                cam = FindObjectOfType <TargettingCamera>();
            }

            if (cam != null)
            {
                TargettingCamera.ResetTracking(false, true);
            }
        }
예제 #2
0
        //---------------------------------------------------------------------
        // Unity API
        //---------------------------------------------------------------------

        /// <summary>
        /// Grabs references to the vCam's settings and to the TargettingCamera
        /// </summary>
        private void Awake()
        {
            cameraSettings = transform.GetComponentInChildren <Camera>();

            if (cam == null)
            {
                cam = FindObjectOfType <TargettingCamera>();
            }
        }
예제 #3
0
        //---------------------------------------------------------------------
        // Public Interface
        //---------------------------------------------------------------------

        /// <summary>
        /// Makes this virtual camera the target of the TargettingCamera
        /// </summary>
        public void Activate()
        {
            if (cam == null)
            {
                cam = FindObjectOfType <TargettingCamera>();
            }

            if (cam != null)
            {
                cam.SetTarget(cameraSettings, PanSpeed);
            }
        }
예제 #4
0
        public void Shake()
        {
            if (cam == null)
            {
                cam = FindObjectOfType <TargettingCamera>();
            }

            if (cam != null)
            {
                cam.CameraShake(Duration, Delay, Intensity);
            }
        }
예제 #5
0
        //-------------------------------------------------------------------------
        // Unity API
        //-------------------------------------------------------------------------

        private void Start()
        {
            if (background == null)
            {
                background = transform;
            }

            if (targettingCamera == null)
            {
                targettingCamera = FindObjectOfType <TargettingCamera>();
            }

            originalPosition = background.position;
        }
예제 #6
0
        /// <summary>
        /// Activate the vCam the player is standing completely within over a partial collision.
        /// </summary>
        /// <param name="col">The collider that's intersecting the vCam collider</param>
        public void PullTriggerStay2D(Collider2D col)
        {
            if (col.gameObject.CompareTag("Player"))
            {
                if (TargettingCamera.target == null)
                {
                    if (cam == null)
                    {
                        cam = FindObjectOfType <TargettingCamera>();
                    }
                    TargettingCamera.ClearTarget();
                }

                if (TargettingCamera.target.transform.position != transform.position)
                {
                    Activate();
                }
            }
        }
예제 #7
0
 private void ResetScene()
 {
     ResetManager.Reset();
     player.Respawn();
     TargettingCamera.ClearTarget();
 }
예제 #8
0
 public void Unfocus()
 {
     TargettingCamera.ClearTarget();
 }
예제 #9
0
 //-------------------------------------------------------------------------
 // Unity API
 //-------------------------------------------------------------------------
 private void Awake()
 {
     targettingCamera = FindObjectOfType <TargettingCamera>();
 }
예제 #10
0
 /// <summary>
 /// Removes the target from the TargettingCamera
 /// </summary>
 public void Deactivate()
 {
     TargettingCamera.ClearTarget();
 }
예제 #11
0
 //-------------------------------------------------------------------------
 // Auto Node API
 //-------------------------------------------------------------------------
 public override void Handle(GraphEngine graphEngine)
 {
     TargettingCamera.ClearTarget();
 }