override public void ShowGUI (List<ActionParameter> parameters)
		{
			isPlayer = EditorGUILayout.Toggle ("Affect Player?", isPlayer);
			if (!isPlayer)
			{
				charToMoveParameterID = Action.ChooseParameterGUI ("Character to turn:", parameters, charToMoveParameterID, ParameterType.GameObject);
				if (charToMoveParameterID >= 0)
				{
					charToMoveID = 0;
					charToMove = null;
				}
				else
				{
					charToMove = (Char) EditorGUILayout.ObjectField ("Character to turn:", charToMove, typeof(Char), true);
					
					charToMoveID = FieldToID <Char> (charToMove, charToMoveID);
					charToMove = IDToField <Char> (charToMove, charToMoveID, false);
				}

				facePlayer = EditorGUILayout.Toggle ("Face player?", facePlayer);
			}
			else
			{
				facePlayer = false;
				
				SettingsManager settingsManager = AdvGame.GetReferences ().settingsManager;
				if (faceType == CharFaceType.Body && settingsManager && settingsManager.IsInFirstPerson ())
				{
					lookUpDown = EditorGUILayout.Toggle ("FPS head tilt?", lookUpDown);
				}
			}

			faceType = (CharFaceType) EditorGUILayout.EnumPopup ("Face with:", faceType);
			if (faceType == CharFaceType.Head)
			{
				stopLooking = EditorGUILayout.Toggle ("Stop looking?", stopLooking);
			}

			if (facePlayer || (faceType == CharFaceType.Head && stopLooking))
			{ }
			else
			{
				faceObjectParameterID = Action.ChooseParameterGUI ("Object to face:", parameters, faceObjectParameterID, ParameterType.GameObject);
				if (faceObjectParameterID >= 0)
				{
					faceObjectID = 0;
					faceObject = null;
				}
				else
				{
					faceObject = (GameObject) EditorGUILayout.ObjectField ("Object to face:", faceObject, typeof(GameObject), true);
					
					faceObjectID = FieldToID (faceObject, faceObjectID);
					faceObject = IDToField (faceObject, faceObjectID, false);
				}
			}

			if (faceType == CharFaceType.Body)
			{
				copyRotation = EditorGUILayout.Toggle ("Use object's rotation?", copyRotation);
			}

			isInstant = EditorGUILayout.Toggle ("Is instant?", isInstant);
			if (!isInstant)
			{
				willWait = EditorGUILayout.Toggle ("Wait until finish?", willWait);
			}

			AfterRunningOption ();
		}
Esempio n. 2
0
        override public void ShowGUI(List <ActionParameter> parameters)
        {
            isPlayer = EditorGUILayout.Toggle("Affect Player?", isPlayer);
            if (!isPlayer)
            {
                charToMoveParameterID = Action.ChooseParameterGUI("Character to turn:", parameters, charToMoveParameterID, ParameterType.GameObject);
                if (charToMoveParameterID >= 0)
                {
                    charToMoveID = 0;
                    charToMove   = null;
                }
                else
                {
                    charToMove = (Char)EditorGUILayout.ObjectField("Character to turn:", charToMove, typeof(Char), true);

                    charToMoveID = FieldToID <Char> (charToMove, charToMoveID);
                    charToMove   = IDToField <Char> (charToMove, charToMoveID, false);
                }
            }
            else
            {
                facePlayer = false;
            }

            faceType = (CharFaceType)EditorGUILayout.EnumPopup("Face with:", faceType);

            if (!isPlayer)
            {
                facePlayer = EditorGUILayout.Toggle("Face player?", facePlayer);
            }
            else
            {
                SettingsManager settingsManager = AdvGame.GetReferences().settingsManager;
                if (faceType == CharFaceType.Body && settingsManager && settingsManager.IsInFirstPerson())
                {
                    lookUpDown = EditorGUILayout.Toggle("Affect head pitch?", lookUpDown);
                }
            }

            if (faceType == CharFaceType.Head)
            {
                stopLooking = EditorGUILayout.Toggle("Stop looking?", stopLooking);
            }

            if (facePlayer || (faceType == CharFaceType.Head && stopLooking))
            {
            }
            else
            {
                faceObjectParameterID = Action.ChooseParameterGUI("Object to face:", parameters, faceObjectParameterID, ParameterType.GameObject);
                if (faceObjectParameterID >= 0)
                {
                    faceObjectID = 0;
                    faceObject   = null;
                }
                else
                {
                    faceObject = (GameObject)EditorGUILayout.ObjectField("Object to face:", faceObject, typeof(GameObject), true);

                    faceObjectID = FieldToID(faceObject, faceObjectID);
                    faceObject   = IDToField(faceObject, faceObjectID, false);
                }
            }

            if (faceType == CharFaceType.Body)
            {
                copyRotation = EditorGUILayout.Toggle("Use object's rotation?", copyRotation);
            }
            else if (faceType == CharFaceType.Head && !stopLooking)
            {
                if (facePlayer || (faceObject != null && faceObject.GetComponent <Char>()))
                {
                    lookAtHead = EditorGUILayout.Toggle("Look at character's head?", lookAtHead);
                }
            }

            isInstant = EditorGUILayout.Toggle("Is instant?", isInstant);
            if (!isInstant)
            {
                willWait = EditorGUILayout.Toggle("Wait until finish?", willWait);
            }

            AfterRunningOption();
        }
Esempio n. 3
0
        public override void ShowGUI(List <ActionParameter> parameters)
        {
            bool playerSwitching = (KickStarter.settingsManager != null && KickStarter.settingsManager.playerSwitching == PlayerSwitching.Allow);

            isPlayer = EditorGUILayout.Toggle("Affect Player?", isPlayer);
            if (isPlayer)
            {
                if (KickStarter.settingsManager != null && KickStarter.settingsManager.playerSwitching == PlayerSwitching.Allow)
                {
                    playerParameterID = ChooseParameterGUI("Player ID:", parameters, playerParameterID, ParameterType.Integer);
                    if (playerParameterID < 0)
                    {
                        playerID = ChoosePlayerGUI(playerID, true);
                    }
                }
            }
            else
            {
                charToMoveParameterID = Action.ChooseParameterGUI("Character to turn:", parameters, charToMoveParameterID, ParameterType.GameObject);
                if (charToMoveParameterID >= 0)
                {
                    charToMoveID = 0;
                    charToMove   = null;
                }
                else
                {
                    charToMove = (Char)EditorGUILayout.ObjectField("Character to turn:", charToMove, typeof(Char), true);

                    charToMoveID = FieldToID <Char> (charToMove, charToMoveID);
                    charToMove   = IDToField <Char> (charToMove, charToMoveID, false);
                }
            }

            faceType = (CharFaceType)EditorGUILayout.EnumPopup("Face with:", faceType);

            if (isPlayer)
            {
                if (faceType == CharFaceType.Body && KickStarter.settingsManager != null && KickStarter.settingsManager.IsInFirstPerson())
                {
                    lookUpDown = EditorGUILayout.Toggle("Affect head pitch?", lookUpDown);
                }
            }

            if (isPlayer && !playerSwitching)
            {
                facePlayer = false;
            }
            else
            {
                facePlayer = EditorGUILayout.Toggle("Face player?", facePlayer);

                if (facePlayer)
                {
                    if (KickStarter.settingsManager != null && KickStarter.settingsManager.playerSwitching == PlayerSwitching.Allow)
                    {
                        faceObjectParameterID = ChooseParameterGUI("Player ID:", parameters, faceObjectParameterID, ParameterType.Integer);
                        if (faceObjectParameterID < 0)
                        {
                            facePlayerID = ChoosePlayerGUI(facePlayerID, true);
                        }

                        if (isPlayer && playerParameterID < 0 && faceObjectParameterID < 0 && playerID == facePlayerID)
                        {
                            EditorGUILayout.HelpBox("A Player cannot face themselves!", MessageType.Warning);
                        }
                    }
                }
            }

            if (faceType == CharFaceType.Head)
            {
                stopLooking = EditorGUILayout.Toggle("Stop looking?", stopLooking);
            }

            if (facePlayer || (faceType == CharFaceType.Head && stopLooking))
            {
            }
            else
            {
                faceObjectParameterID = Action.ChooseParameterGUI("Object to face:", parameters, faceObjectParameterID, ParameterType.GameObject);
                if (faceObjectParameterID >= 0)
                {
                    faceObjectID = 0;
                    faceObject   = null;
                }
                else
                {
                    faceObject = (GameObject)EditorGUILayout.ObjectField("Object to face:", faceObject, typeof(GameObject), true);

                    faceObjectID = FieldToID(faceObject, faceObjectID);
                    faceObject   = IDToField(faceObject, faceObjectID, false);
                }
            }

            if (faceType == CharFaceType.Body)
            {
                copyRotation = EditorGUILayout.Toggle("Use object's rotation?", copyRotation);
            }
            else if (faceType == CharFaceType.Head && !stopLooking)
            {
                if (facePlayer || (faceObject != null && faceObject.GetComponent <Char>()))
                {
                    lookAtHead = EditorGUILayout.Toggle("Look at character's head?", lookAtHead);
                }
                else if (faceObjectParameterID >= 0)
                {
                    lookAtHead = EditorGUILayout.Toggle("If a character, look at head?", lookAtHead);
                }
            }

            isInstant = EditorGUILayout.Toggle("Is instant?", isInstant);
            if (!isInstant)
            {
                willWait = EditorGUILayout.Toggle("Wait until finish?", willWait);
            }

            AfterRunningOption();
        }