コード例 #1
0
        void DisplayItems()
        {
            const float timeToPickup = .3f;

            int index = 0;

            foreach (var item in Inventory)
            {
                if (item is null)
                {
                    continue;
                }

                var pos = new Vector3(index-- / 2f, 0, 0);

                StartCoroutine(Animator.AnimateConcurrent(
                                   new[]
                {
                    Animator.MoveToWorld(item.transform, () => ItemPositionTransform.TransformPoint(pos), timeToPickup, Easing.OutQuad),
                    Animator.RotateToWorld(item.transform, () => ItemPositionTransform.rotation * item.PlayerRotation, timeToPickup, Easing.OutQuad),
                },
                                   () =>
                {
                    if (!Inventory.Contains(item))
                    {
                        return;
                    }

                    item.transform.SetParent(ItemPositionTransform);
                    item.transform.localPosition = pos;
                    item.transform.localRotation = item.PlayerRotation;
                }));
            }
        }
コード例 #2
0
ファイル: PhotoBoard.cs プロジェクト: i3ym/DeloG
        public override void DoInteraction(Player player)
        {
            if (!(player.Inventory.CurrentItem is PhotoItem photo))
            {
                return;
            }

            var raycast = Raycast.RaycastInteractable(player.Camera.transform, out var hit);

            if (!raycast)
            {
                return;
            }

            player.DropCurrentItem();
            photo.Rigidbody.isKinematic = true;
            photo.Collider.isTrigger    = true;
            photo.transform.SetParent(transform);

            StartCoroutine(Animator.AnimateConcurrent(
                               new[]
            {
                Animator.MoveToWorld(photo.transform, hit.point, .7f, Easing.OutCubic),
                Animator.RotateToLocal(photo.transform, Quaternion.Euler(-90, -90, 0), .7f, Easing.OutCubic)
            }));
        }