public void Run(Vector2 target2D, bool isCanMoveBall) { DirectionScreenTo3D(target2D); CalculateDirection(); CalculateForce(); if (isCanMoveBall) { _ballMovable.Move(_direction * _force); } _playerMovable.Move(_target3D); _arrowStretchable.Scale(_force, _ballBaseStats.MAXForce); _arrowStretchable.Rotate(_playerTransformPosition.GetPosition()); _aiMovable.Move(_ballTransform.GetPosition()); }
public void Rotate(Vector3 target3D) { ITransformPosition transformPosition = (ITransformPosition)_arrowTransformable; ITransformRotation transformRotation = (ITransformRotation)_arrowTransformable; Quaternion result = Quaternion.LookRotation(target3D - transformPosition.GetPosition(), Vector3.up); result.eulerAngles = new Vector3(0, result.eulerAngles.y + 90, 0); transformRotation.ApplyRotation(result); }