예제 #1
0
        public override void ActionIn()
        {
            RaycastHit hit;

            var startPosition = _gameObjectController.transform.position + startOffset;
            var direction     = _gameObjectController.transform.forward;

            if (Physics.Raycast(startPosition, direction, out hit, distance, maskLayer))
            {
                GameObjectController controller = hit.collider.GetComponent <GameObjectController>();
                if (controller == null)
                {
                    return;
                }
                controller.BeAttack(new BeAttackParam(direction));
            }
        }
예제 #2
0
        public override void ActionIn()
        {
            float      screenX = _playerController.playerInputState.X;
            float      screenY = _playerController.playerInputState.Y;
            RaycastHit hit;
            Ray        ray = CameraManager.Instance.CurCamera.followCamera.ScreenPointToRay(new Vector3(screenX, screenY, 0));

            bool IsHit = Physics.Raycast(ray.origin, ray.direction, out hit, rayDistance, maskLayer);

            if (IsHit && Vector3.Distance(_playerController.transform.position, hit.point)
                < distance)
            {
                GameObjectController controller = hit.collider.GetComponent <GameObjectController>();
                if (controller == null)
                {
                    return;
                }
                controller.BeAttack(new BeAttackParam(ray.direction));
            }
        }