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)); } }
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)); } }