示例#1
0
        public override void AssignConstantIDs(bool saveScriptsToo, bool fromAssetFile)
        {
            Shapeable obToUpdate = shapeObject;

            if (isPlayer && (KickStarter.settingsManager == null || KickStarter.settingsManager.playerSwitching == PlayerSwitching.DoNotAllow))
            {
                if (!fromAssetFile)
                {
                    Player charToUpdate = FindObjectOfType <Player> ();
                    if (charToUpdate != null)
                    {
                        obToUpdate = charToUpdate.GetShapeable();
                    }
                }

                if (obToUpdate == null && AdvGame.GetReferences().settingsManager != null)
                {
                    Player player = AdvGame.GetReferences().settingsManager.GetDefaultPlayer();
                    obToUpdate = player.GetShapeable();
                }
            }

            if (saveScriptsToo)
            {
                AddSaveScript <RememberShapeable> (obToUpdate);
            }
            AssignConstantID <Shapeable> (obToUpdate, constantID, parameterID);
        }
示例#2
0
        public override void AssignValues(List <ActionParameter> parameters)
        {
            runtimeShapeObject = AssignFile <Shapeable> (parameters, parameterID, constantID, shapeObject);

            if (isPlayer)
            {
                Player player = AssignPlayer(playerID, parameters, playerParameterID);
                runtimeShapeObject = (player != null) ? player.GetShapeable() : null;
            }
        }
        override public void AssignConstantIDs(bool saveScriptsToo, bool fromAssetFile)
        {
            Shapeable obToUpdate = shapeObject;

            if (isPlayer)
            {
                if (!fromAssetFile && GameObject.FindObjectOfType <Player>() != null)
                {
                    obToUpdate = GameObject.FindObjectOfType <Player>().GetShapeable();
                }

                if (obToUpdate == null && AdvGame.GetReferences().settingsManager != null)
                {
                    Player player = AdvGame.GetReferences().settingsManager.GetDefaultPlayer();
                    obToUpdate = player.GetShapeable();
                }
            }

            if (saveScriptsToo)
            {
                AddSaveScript <RememberShapeable> (obToUpdate);
            }
            AssignConstantID <Shapeable> (obToUpdate, constantID, parameterID);
        }
        override public void ShowGUI(List <ActionParameter> parameters)
        {
            isPlayer = EditorGUILayout.Toggle("Is player?", isPlayer);
            if (!isPlayer)
            {
                parameterID = ChooseParameterGUI("Object:", parameters, parameterID, ParameterType.GameObject);
                if (parameterID >= 0)
                {
                    constantID  = 0;
                    shapeObject = null;
                }
                else
                {
                    shapeObject = (Shapeable)EditorGUILayout.ObjectField("Object:", shapeObject, typeof(Shapeable), true);

                    constantID  = FieldToID <Shapeable> (shapeObject, constantID);
                    shapeObject = IDToField <Shapeable> (shapeObject, constantID, false);
                }
            }
            else
            {
                Player _player = null;

                if (Application.isPlaying)
                {
                    _player = KickStarter.player;
                }
                else
                {
                    _player = AdvGame.GetReferences().settingsManager.GetDefaultPlayer();
                }

                if (_player != null && _player.GetShapeable())
                {
                    shapeObject = _player.GetShapeable();
                }
                else
                {
                    shapeObject = null;
                    EditorGUILayout.HelpBox("Cannot find player with Shapeable script attached", MessageType.Warning);
                }
            }

            if (shapeObject != null && shapeObject.shapeGroups != null)
            {
                shapeGroupID   = ActionBlendShape.ShapeableGroupGUI("Shape group:", shapeObject.shapeGroups, shapeGroupID);
                disableAllKeys = EditorGUILayout.Toggle("Disable all keys?", disableAllKeys);
                if (!disableAllKeys)
                {
                    ShapeGroup _shapeGroup = shapeObject.GetGroup(shapeGroupID);
                    if (_shapeGroup != null)
                    {
                        if (_shapeGroup.shapeKeys != null && _shapeGroup.shapeKeys.Count > 0)
                        {
                            shapeKeyID = ShapeableKeyGUI(_shapeGroup.shapeKeys, shapeKeyID);
                        }
                        else
                        {
                            EditorGUILayout.HelpBox("No shape keys found.", MessageType.Info);
                        }
                    }
                    shapeValue = EditorGUILayout.Slider("New value:", shapeValue, 0f, 100f);
                }
            }
            else
            {
                EditorGUILayout.HelpBox("An object must be assigned before more options can show.", MessageType.Info);
            }

            fadeTime = EditorGUILayout.FloatField("Transition time:", fadeTime);
            if (fadeTime > 0f)
            {
                moveMethod = (MoveMethod)EditorGUILayout.EnumPopup("Move method:", moveMethod);
                if (moveMethod == MoveMethod.CustomCurve)
                {
                    timeCurve = EditorGUILayout.CurveField("Time curve:", timeCurve);
                }
                willWait = EditorGUILayout.Toggle("Wait until finish?", willWait);
            }

            AfterRunningOption();
        }