Пример #1
0
 // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
 override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     if (_playerStateMachine.TargetObject != null)
     {
         //still thinking if tag check is appropriate
         if (_playerStateMachine.TargetObject.tag != "Ground")
         {
             _playerStateMachine.SetTargetLocation(_playerStateMachine.TargetObject.transform.position);
         }
     }
 }
    public override void HandleAction(InputAction.CallbackContext ctx)
    {
        if (ctx.performed)
        {
            //if (isOrthographic)
            //{
            //    Vector2 worldPos = Camera.main.ScreenToWorldPoint(_inputHandlerMousePosition.MousePosition);
            //    //_mover.TargetPosition = worldPos;
            //    //_mover.SetTargetPosition(worldPos);
            //}
            //else
            //{
            Vector3 nearPosition = new Vector3(_inputHandlerMousePosition.MousePosition.x,
                                               _inputHandlerMousePosition.MousePosition.y,
                                               Camera.main.nearClipPlane);
            Vector3 farPosition = new Vector3(_inputHandlerMousePosition.MousePosition.x,
                                              _inputHandlerMousePosition.MousePosition.y,
                                              Camera.main.farClipPlane);

            Vector3 nearRay = Camera.main.ScreenToWorldPoint(nearPosition);
            Vector3 farRay  = Camera.main.ScreenToWorldPoint(farPosition);

            RaycastHit hitInfo;
            bool       hasHit = Physics.Raycast(nearRay, farRay, out hitInfo, maskRaycast);

            if (hasHit)
            {
                //if (useAsStateMachine)
                //{
                _playerStateMachine.SetTargetObject(hitInfo.collider.gameObject);
                _playerStateMachine.SetTargetLocation(hitInfo.point);
                //}
                //else
                //{
                //    _mover.SetTargetPosition(hitInfo.point);
                //}
            }
            else
            {
                Debug.Log("no hit");
            }
            //}
        }
    }