Exemple #1
0
        public Task <bool> SetPositionAsync(Vector3 position, Quaternion rotation)
        {
            async UniTask <bool> TeleportationTask()
            {
                await UniTask.SwitchToMainThread();

                if (Player.transform.position == position.ToUnityVector() &&
                    Player.transform.rotation == rotation.ToUnityQuaternion())
                {
                    return(true);
                }

                if (!ValidationHelper.IsValid(position) || !ValidationHelper.IsValid(rotation))
                {
                    return(false);
                }

                return(Player.teleportToLocation(position.ToUnityVector(), rotation.ToEulerAngles().Y));
            }

            return(TeleportationTask().AsTask());
        }