Ejemplo n.º 1
0
        public void AwakeWheel(List <SelectionWheelNodeData> wheelNodeDatas, Transform followingWorldTransform)
        {
            if (!IsWheelEnabled)
            {
                IsWheelEnabled = true;
                this.followingWorldTransform = followingWorldTransform;

                var SelectionWheelGlobalConfiguration = SelectionWheelGlobalConfigurationGameObject.Get().SelectionWheelGlobalConfiguration;

                if (SelectionWheelGameObject == null)
                {
                    SelectionWheelGameObject      = new SelectionWheelGameObject(CoreGameSingletonInstances.GameCanvas);
                    SelectionWheelObjectAnimation = new SelectionWheelObjectAnimation(SelectionWheelGameObject, SelectionWheelGlobalConfiguration.SelectionWheelEnterAnimation, OnExitAnimationFinished);
                }

                SelectionWheelPositionManager = new SelectionWheelPositionManager(this, SelectionWheelGlobalConfiguration, this.followingWorldTransform);
                SelectionWheelObjectAnimation.PlayEnterAnimation();
                ActionWheelActiveNodeManager   = new ActionWheelActiveNodeManager(SelectionWheelGlobalConfiguration.NonSelectedMaterial, SelectionWheelGlobalConfiguration.SelectedMaterial);
                ActionWheelNodePositionManager = new ActionWheelNodePositionManager(SelectionWheelGlobalConfiguration.ActionWheelNodePositionManagerComponent, GameInputManager.Get(), ActionWheelActiveNodeManager);
                wheelNodes = new SelectionWheelNode[wheelNodeDatas.Count];
                for (var i = 0; i < wheelNodeDatas.Count; i++)
                {
                    var wheelNode = SelectionWheelNode.Instantiate(wheelNodeDatas[i]);
                    wheelNode.transform.SetParent(SelectionWheelGameObject.SelectionWheelNodeContainerGameObject.transform, false);
                    wheelNodes[i] = wheelNode;
                }

                ActionWheelNodePositionManager.InitNodes(wheelNodes);
                ActionWheelActiveNodeManager.SelectedNodeChanged(wheelNodes);
            }
        }
Ejemplo n.º 2
0
        public SelectionWheelObjectAnimation(SelectionWheelGameObject SelectionWheelGameObject, AnimationClip enterTransitionAnimationClip, Action OnExitAnimationCompleted)
        {
            SelectionWheelObjectAnimationVariables = new Dictionary <SelectionWheelObjectAnimationVarableType, BoolVariable>()
            {
                { SelectionWheelObjectAnimationVarableType.OpenAnimation, new BoolVariable(false, OnOpenAnimationStarted) },
                {
                    SelectionWheelObjectAnimationVarableType.CloseAnimation, new BoolVariable(false, OnCloseAnimationStarted, () =>
                    {
                        OnCloseAnimationFinished();
                        OnExitAnimationCompleted.Invoke();
                    })
                }
            };

            AnimationGraph = PlayableGraph.Create(GetType().Name);
            AnimationGraph.SetTimeUpdateMode(DirectorUpdateMode.GameTime);

            EnterTransitionAnimationClipPlayable = AnimationClipPlayable.Create(AnimationGraph, enterTransitionAnimationClip);
            EnterTransitionAnimationClipPlayable.SetApplyFootIK(false);
            EnterTransitionAnimationClipPlayable.Pause();
            var animationGraphPlayableOutput = AnimationPlayableOutput.Create(AnimationGraph, "Animation", SelectionWheelGameObject.Animator);

            animationGraphPlayableOutput.SetSourcePlayable(EnterTransitionAnimationClipPlayable);

            AnimationGraph.Play();
        }