public override void AssignValues(List<ActionParameter> parameters) { obToMove = AssignFile (parameters, obToMoveParameterID, obToMoveID, obToMove); teleporter = AssignFile <Marker> (parameters, markerParameterID, markerID, teleporter); if (isPlayer && KickStarter.player) { obToMove = KickStarter.player.gameObject; } }
public override void AssignValues (List<ActionParameter> parameters) { charToMove = AssignFile <Char> (parameters, charToMoveParameterID, charToMoveID, charToMove); marker = AssignFile <Marker> (parameters, markerParameterID, markerID, marker); if (isPlayer) { charToMove = KickStarter.player; } }
public override void ShowGUI(List<ActionParameter> parameters) { parameterID = Action.ChooseParameterGUI ("Moveable object:", parameters, parameterID, ParameterType.GameObject); if (parameterID >= 0) { constantID = 0; linkedProp = null; } else { linkedProp = (Moveable) EditorGUILayout.ObjectField ("Moveable object:", linkedProp, typeof (Moveable), true); constantID = FieldToID <Moveable> (linkedProp, constantID); linkedProp = IDToField <Moveable> (linkedProp, constantID, false); } EditorGUILayout.BeginHorizontal (); transformType = (TransformType) EditorGUILayout.EnumPopup (transformType); if (transformType != TransformType.CopyMarker) { toBy = (ToBy) EditorGUILayout.EnumPopup (toBy); } EditorGUILayout.EndHorizontal (); if (transformType == TransformType.CopyMarker) { markerParameterID = Action.ChooseParameterGUI ("Marker:", parameters, markerParameterID, ParameterType.GameObject); if (markerParameterID >= 0) { markerID = 0; marker = null; } else { marker = (Marker) EditorGUILayout.ObjectField ("Marker:", marker, typeof (Marker), true); markerID = FieldToID <Marker> (marker, markerID); marker = IDToField <Marker> (marker, markerID, false); } } else { newVector = EditorGUILayout.Vector3Field ("Vector:", newVector); } transitionTime = EditorGUILayout.Slider ("Transition time:", transitionTime, 0, 10f); if (transitionTime > 0f) { if (transformType == TransformType.Rotate) { doEulerRotation = EditorGUILayout.Toggle ("Euler rotation?", doEulerRotation); } 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 (); }
override public void ShowGUI (List<ActionParameter> parameters) { isPlayer = EditorGUILayout.Toggle ("Is Player?", isPlayer); if (!isPlayer) { charToMoveParameterID = Action.ChooseParameterGUI ("Character to move:", parameters, charToMoveParameterID, ParameterType.GameObject); if (charToMoveParameterID >= 0) { charToMoveID = 0; charToMove = null; } else { charToMove = (Char) EditorGUILayout.ObjectField ("Character to move:", charToMove, typeof (Char), true); charToMoveID = FieldToID <Char> (charToMove, charToMoveID); charToMove = IDToField <Char> (charToMove, charToMoveID, false); } } markerParameterID = Action.ChooseParameterGUI ("Marker to reach:", parameters, markerParameterID, ParameterType.GameObject); if (markerParameterID >= 0) { markerID = 0; marker = null; } else { marker = (Marker) EditorGUILayout.ObjectField ("Marker to reach:", marker, typeof (Marker), true); markerID = FieldToID <Marker> (marker, markerID); marker = IDToField <Marker> (marker, markerID, false); } speed = (PathSpeed) EditorGUILayout.EnumPopup ("Move speed:" , speed); pathFind = EditorGUILayout.Toggle ("Pathfind?", pathFind); if (!pathFind) { doFloat = EditorGUILayout.Toggle ("Ignore gravity?", doFloat); } willWait = EditorGUILayout.Toggle ("Wait until finish?", willWait); AfterRunningOption (); }
public void Move(Marker _marker, MoveMethod _moveMethod, float _transitionTime, AnimationCurve _timeCurve) { if (GetComponent <Rigidbody>() && !GetComponent <Rigidbody>().isKinematic) { GetComponent <Rigidbody>().velocity = GetComponent <Rigidbody>().angularVelocity = Vector3.zero; } StopCoroutine ("_UpdateMovement"); transformType = TransformType.CopyMarker; if (_transitionTime == 0f) { isMoving = false; transform.localPosition = _marker.transform.localPosition; transform.localEulerAngles = _marker.transform.localEulerAngles; transform.localScale = _marker.transform.localScale; } else { isMoving = true; doEulerRotation = false; moveMethod = _moveMethod; startPosition = transform.localPosition; startRotation = transform.localRotation; startScale = transform.localScale; endPosition = _marker.transform.localPosition; endRotation = _marker.transform.localRotation; endScale = _marker.transform.localScale; moveChangeTime = _transitionTime; moveStartTime = Time.time; if (moveMethod == MoveMethod.CustomCurve) { timeCurve = _timeCurve; } else { timeCurve = null; } StartCoroutine ("_UpdateMovement"); } }
public override void AssignValues(List<ActionParameter> parameters) { linkedProp = AssignFile <Moveable> (parameters, parameterID, constantID, linkedProp); marker = AssignFile <Marker> (parameters, markerParameterID, markerID, marker); }
public override void ShowGUI(List<ActionParameter> parameters) { isPlayer = EditorGUILayout.Toggle ("Is Player?", isPlayer); if (!isPlayer) { obToMoveParameterID = Action.ChooseParameterGUI ("Object to move:", parameters, obToMoveParameterID, ParameterType.GameObject); if (obToMoveParameterID >= 0) { obToMoveID = 0; obToMove = null; } else { obToMove = (GameObject) EditorGUILayout.ObjectField ("Object to move:", obToMove, typeof(GameObject), true); obToMoveID = FieldToID (obToMove, obToMoveID); obToMove = IDToField (obToMove, obToMoveID, false); } } markerParameterID = Action.ChooseParameterGUI ("Teleport to:", parameters, markerParameterID, ParameterType.GameObject); if (markerParameterID >= 0) { markerID = 0; teleporter = null; } else { teleporter = (Marker) EditorGUILayout.ObjectField ("Teleport to:", teleporter, typeof (Marker), true); markerID = FieldToID <Marker> (teleporter, markerID); teleporter = IDToField <Marker> (teleporter, markerID, false); } positionRelativeTo = (PositionRelativeTo) EditorGUILayout.EnumPopup ("Position relative to:", positionRelativeTo); copyRotation = EditorGUILayout.Toggle ("Copy rotation?", copyRotation); if (isPlayer) { snapCamera = EditorGUILayout.Toggle ("Teleport active camera too?", snapCamera); } AfterRunningOption (); }
public override void ShowGUI() { if (!settingsManager) { settingsManager = AdvGame.GetReferences ().settingsManager; } if (!settingsManager) { return; } if (settingsManager.playerSwitching == PlayerSwitching.DoNotAllow) { EditorGUILayout.HelpBox ("This Action requires Player Switching to be allowed, as set in the Settings Manager.", MessageType.Info); return; } // Create a string List of the field's names (for the PopUp box) List<string> labelList = new List<string>(); int i = 0; playerNumber = -1; if (settingsManager.players.Count > 0) { foreach (PlayerPrefab playerPrefab in settingsManager.players) { if (playerPrefab.playerOb != null) { labelList.Add (playerPrefab.playerOb.name); } else { labelList.Add ("(Undefined prefab)"); } // If a player has been removed, make sure selected player is still valid if (playerPrefab.ID == playerID) { playerNumber = i; } i++; } if (playerNumber == -1) { // Wasn't found (item was possibly deleted), so revert to zero ACDebug.LogWarning ("Previously chosen Player no longer exists!"); playerNumber = 0; playerID = 0; } playerNumber = EditorGUILayout.Popup ("New Player:", playerNumber, labelList.ToArray()); playerID = settingsManager.players[playerNumber].ID; if (AdvGame.GetReferences ().settingsManager == null || !AdvGame.GetReferences ().settingsManager.shareInventory) { keepInventory = EditorGUILayout.Toggle ("Transfer inventory?", keepInventory); } restorePreviousData = EditorGUILayout.Toggle ("Restore position?", restorePreviousData); if (restorePreviousData) { EditorGUILayout.LabelField ("If first time in game:", EditorStyles.boldLabel); } newPlayerPosition = (NewPlayerPosition) EditorGUILayout.EnumPopup ("New Player position:", newPlayerPosition); if (newPlayerPosition == NewPlayerPosition.ReplaceNPC) { newPlayerNPC = (NPC) EditorGUILayout.ObjectField ("NPC to be replaced:", newPlayerNPC, typeof (NPC), true); newPlayerNPC_ID = FieldToID <NPC> (newPlayerNPC, newPlayerNPC_ID); newPlayerNPC = IDToField <NPC> (newPlayerNPC, newPlayerNPC_ID, false); } else if (newPlayerPosition == NewPlayerPosition.AppearAtMarker) { newPlayerMarker = (Marker) EditorGUILayout.ObjectField ("Marker to appear at:", newPlayerMarker, typeof (Marker), true); newPlayerMarker_ID = FieldToID <Marker> (newPlayerMarker, newPlayerMarker_ID); newPlayerMarker = IDToField <Marker> (newPlayerMarker, newPlayerMarker_ID, false); } else if (newPlayerPosition == NewPlayerPosition.AppearInOtherScene) { chooseNewSceneBy = (ChooseSceneBy) EditorGUILayout.EnumPopup ("Choose scene by:", chooseNewSceneBy); if (chooseNewSceneBy == ChooseSceneBy.Name) { newPlayerSceneName = EditorGUILayout.TextField ("Scene to appear in:", newPlayerSceneName); } else { newPlayerScene = EditorGUILayout.IntField ("Scene to appear in:", newPlayerScene); } } if (newPlayerPosition == NewPlayerPosition.ReplaceNPC || newPlayerPosition == NewPlayerPosition.AppearAtMarker) { EditorGUILayout.Space (); oldPlayer = (OldPlayer) EditorGUILayout.EnumPopup ("Old Player", oldPlayer); if (oldPlayer == OldPlayer.ReplaceWithNPC) { oldPlayerNPC = (NPC) EditorGUILayout.ObjectField ("NPC to replace old Player:", oldPlayerNPC, typeof (NPC), true); oldPlayerNPC_ID = FieldToID <NPC> (oldPlayerNPC, oldPlayerNPC_ID); oldPlayerNPC = IDToField <NPC> (oldPlayerNPC, oldPlayerNPC_ID, false); } } } else { EditorGUILayout.LabelField ("No players exist!"); playerID = -1; playerNumber = -1; } EditorGUILayout.Space (); AfterRunningOption (); }
public override void AssignValues() { oldPlayerNPC = AssignFile <NPC> (oldPlayerNPC_ID, oldPlayerNPC); newPlayerNPC = AssignFile <NPC> (newPlayerNPC_ID, newPlayerNPC); newPlayerMarker = AssignFile <Marker> (newPlayerMarker_ID, newPlayerMarker); }
public override void ShowGUI(List<ActionParameter> parameters) { chooseSceneBy = (ChooseSceneBy) EditorGUILayout.EnumPopup ("Choose scene by:", chooseSceneBy); if (chooseSceneBy == ChooseSceneBy.Name) { sceneNameParameterID = Action.ChooseParameterGUI ("Scene name:", parameters, sceneNameParameterID, ParameterType.String); if (sceneNameParameterID < 0) { sceneName = EditorGUILayout.TextField ("Scene name:", sceneName); } } else { sceneNumberParameterID = Action.ChooseParameterGUI ("Scene number:", parameters, sceneNumberParameterID, ParameterType.Integer); if (sceneNumberParameterID < 0) { sceneNumber = EditorGUILayout.IntField ("Scene number:", sceneNumber); } } relativePosition = EditorGUILayout.ToggleLeft ("Position Player relative to Marker?", relativePosition); if (relativePosition) { relativeMarkerParameterID = Action.ChooseParameterGUI ("Relative Marker:", parameters, relativeMarkerParameterID, ParameterType.GameObject); if (relativeMarkerParameterID >= 0) { relativeMarkerID = 0; relativeMarker = null; } else { relativeMarker = (Marker) EditorGUILayout.ObjectField ("Relative Marker:", relativeMarker, typeof(Marker), true); relativeMarkerID = FieldToID (relativeMarker, relativeMarkerID); relativeMarker = IDToField (relativeMarker, relativeMarkerID, false); } } else { onlyPreload = EditorGUILayout.ToggleLeft ("Don't change scene, just preload data?", onlyPreload); } if (onlyPreload && !relativePosition) { if (AdvGame.GetReferences () != null && AdvGame.GetReferences ().settingsManager != null && AdvGame.GetReferences ().settingsManager.useAsyncLoading) {} else { EditorGUILayout.HelpBox ("To pre-load scenes, 'Load scenes asynchronously?' must be enabled in the Settings Manager.", MessageType.Warning); } AfterRunningOption (); } else { assignScreenOverlay = EditorGUILayout.ToggleLeft ("Overlay current screen during switch?", assignScreenOverlay); } }
public override void AssignValues(List<ActionParameter> parameters) { sceneNumber = AssignInteger (parameters, sceneNumberParameterID, sceneNumber); sceneName = AssignString (parameters, sceneNameParameterID, sceneName); relativeMarker = AssignFile <Marker> (parameters, relativeMarkerParameterID, relativeMarkerID, relativeMarker); }
override public void AssignValues() { oldPlayerNPC = AssignFile <NPC> (oldPlayerNPC_ID, oldPlayerNPC); newPlayerNPC = AssignFile <NPC> (newPlayerNPC_ID, newPlayerNPC); newPlayerMarker = AssignFile <Marker> (newPlayerMarker_ID, newPlayerMarker); }
override public void ShowGUI() { if (!settingsManager) { settingsManager = AdvGame.GetReferences().settingsManager; } if (!settingsManager) { return; } if (settingsManager.playerSwitching == PlayerSwitching.DoNotAllow) { EditorGUILayout.HelpBox("This Action requires Player Switching to be allowed, as set in the Settings Manager.", MessageType.Info); return; } // Create a string List of the field's names (for the PopUp box) List <string> labelList = new List <string>(); int i = 0; playerNumber = -1; if (settingsManager.players.Count > 0) { foreach (PlayerPrefab playerPrefab in settingsManager.players) { if (playerPrefab.playerOb != null) { labelList.Add(playerPrefab.playerOb.name); } else { labelList.Add("(Undefined prefab)"); } // If a player has been removed, make sure selected player is still valid if (playerPrefab.ID == playerID) { playerNumber = i; } i++; } if (playerNumber == -1) { // Wasn't found (item was possibly deleted), so revert to zero ACDebug.LogWarning("Previously chosen Player no longer exists!"); playerNumber = 0; playerID = 0; } playerNumber = EditorGUILayout.Popup("New Player:", playerNumber, labelList.ToArray()); playerID = settingsManager.players[playerNumber].ID; if (AdvGame.GetReferences().settingsManager == null || !AdvGame.GetReferences().settingsManager.shareInventory) { keepInventory = EditorGUILayout.Toggle("Transfer inventory?", keepInventory); } restorePreviousData = EditorGUILayout.Toggle("Restore position?", restorePreviousData); if (restorePreviousData) { EditorGUILayout.BeginVertical(CustomStyles.thinBox); EditorGUILayout.LabelField("If first time in game:", EditorStyles.boldLabel); } newPlayerPosition = (NewPlayerPosition)EditorGUILayout.EnumPopup("New Player position:", newPlayerPosition); if (newPlayerPosition == NewPlayerPosition.ReplaceNPC) { newPlayerNPC = (NPC)EditorGUILayout.ObjectField("NPC to be replaced:", newPlayerNPC, typeof(NPC), true); newPlayerNPC_ID = FieldToID <NPC> (newPlayerNPC, newPlayerNPC_ID); newPlayerNPC = IDToField <NPC> (newPlayerNPC, newPlayerNPC_ID, false); } else if (newPlayerPosition == NewPlayerPosition.AppearAtMarker) { newPlayerMarker = (Marker)EditorGUILayout.ObjectField("Marker to appear at:", newPlayerMarker, typeof(Marker), true); newPlayerMarker_ID = FieldToID <Marker> (newPlayerMarker, newPlayerMarker_ID); newPlayerMarker = IDToField <Marker> (newPlayerMarker, newPlayerMarker_ID, false); } else if (newPlayerPosition == NewPlayerPosition.AppearInOtherScene) { chooseNewSceneBy = (ChooseSceneBy)EditorGUILayout.EnumPopup("Choose scene by:", chooseNewSceneBy); if (chooseNewSceneBy == ChooseSceneBy.Name) { newPlayerSceneName = EditorGUILayout.TextField("Scene to appear in:", newPlayerSceneName); } else { newPlayerScene = EditorGUILayout.IntField("Scene to appear in:", newPlayerScene); } newPlayerNPC = (NPC)EditorGUILayout.ObjectField("NPC to be replaced:", newPlayerNPC, typeof(NPC), true); newPlayerNPC_ID = FieldToID <NPC> (newPlayerNPC, newPlayerNPC_ID); newPlayerNPC = IDToField <NPC> (newPlayerNPC, newPlayerNPC_ID, false); } if (restorePreviousData) { EditorGUILayout.EndVertical(); } if (newPlayerPosition == NewPlayerPosition.ReplaceNPC || newPlayerPosition == NewPlayerPosition.AppearAtMarker || newPlayerPosition == NewPlayerPosition.AppearInOtherScene) { EditorGUILayout.Space(); oldPlayer = (OldPlayer)EditorGUILayout.EnumPopup("Old Player:", oldPlayer); if (oldPlayer == OldPlayer.ReplaceWithNPC) { oldPlayerNPC = (NPC)EditorGUILayout.ObjectField("NPC to replace old Player:", oldPlayerNPC, typeof(NPC), true); oldPlayerNPC_ID = FieldToID <NPC> (oldPlayerNPC, oldPlayerNPC_ID); oldPlayerNPC = IDToField <NPC> (oldPlayerNPC, oldPlayerNPC_ID, false); } } } else { EditorGUILayout.LabelField("No players exist!"); playerID = -1; playerNumber = -1; } EditorGUILayout.Space(); AfterRunningOption(); }
public override void OnInspectorGUI() { if (AdvGame.GetReferences() == null) { ACDebug.LogError("A References file is required - please use the Adventure Creator window to create one."); EditorGUILayout.LabelField("No References file found!"); } else { if (AdvGame.GetReferences().inventoryManager) { inventoryManager = AdvGame.GetReferences().inventoryManager; } if (AdvGame.GetReferences().cursorManager) { cursorManager = AdvGame.GetReferences().cursorManager; } if (AdvGame.GetReferences().settingsManager) { settingsManager = AdvGame.GetReferences().settingsManager; } if (Application.isPlaying) { if (_target.gameObject.layer != LayerMask.NameToLayer(settingsManager.hotspotLayer)) { EditorGUILayout.HelpBox("Current state: OFF", MessageType.Info); } } if (_target.lineID > -1) { EditorGUILayout.LabelField("Speech Manager ID:", _target.lineID.ToString()); } _target.interactionSource = (InteractionSource)EditorGUILayout.EnumPopup("Interaction source:", _target.interactionSource); _target.hotspotName = EditorGUILayout.TextField("Label (if not name):", _target.hotspotName); _target.highlight = (Highlight)EditorGUILayout.ObjectField("Object to highlight:", _target.highlight, typeof(Highlight), true); if (AdvGame.GetReferences().settingsManager != null && AdvGame.GetReferences().settingsManager.hotspotDrawing == ScreenWorld.WorldSpace) { _target.iconSortingLayer = EditorGUILayout.TextField("Icon sorting layer:", _target.iconSortingLayer); _target.iconSortingOrder = EditorGUILayout.IntField("Icon sprite order:", _target.iconSortingOrder); } EditorGUILayout.BeginHorizontal(); _target.centrePoint = (Transform)EditorGUILayout.ObjectField("Centre point (override):", _target.centrePoint, typeof(Transform), true); if (_target.centrePoint == null) { if (GUILayout.Button("Create", autoWidth)) { string prefabName = "Hotspot centre: " + _target.gameObject.name; GameObject go = SceneManager.AddPrefab("Navigation", "HotspotCentre", true, false, false); go.name = prefabName; go.transform.position = _target.transform.position; _target.centrePoint = go.transform; if (GameObject.Find("_Markers")) { go.transform.parent = GameObject.Find("_Markers").transform; } } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); _target.walkToMarker = (Marker)EditorGUILayout.ObjectField("Walk-to marker:", _target.walkToMarker, typeof(Marker), true); if (_target.walkToMarker == null) { if (GUILayout.Button("Create", autoWidth)) { string prefabName = "Marker"; if (settingsManager && settingsManager.IsUnity2D()) { prefabName += "2D"; } Marker newMarker = SceneManager.AddPrefab("Navigation", prefabName, true, false, true).GetComponent <Marker>(); newMarker.gameObject.name += (": " + _target.gameObject.name); newMarker.transform.position = _target.transform.position; _target.walkToMarker = newMarker; } } EditorGUILayout.EndHorizontal(); _target.limitToCamera = (_Camera)EditorGUILayout.ObjectField("Limit to camera:", _target.limitToCamera, typeof(_Camera), true); _target.drawGizmos = EditorGUILayout.Toggle("Draw yellow cube?", _target.drawGizmos); if (settingsManager != null && (settingsManager.interactionMethod == AC_InteractionMethod.ChooseHotspotThenInteraction || settingsManager.interactionMethod == AC_InteractionMethod.ChooseInteractionThenHotspot)) { _target.oneClick = EditorGUILayout.Toggle("Single 'Use' Interaction?", _target.oneClick); } if (_target.oneClick || (settingsManager != null && settingsManager.interactionMethod == AC_InteractionMethod.ContextSensitive)) { _target.doubleClickingHotspot = (DoubleClickingHotspot)EditorGUILayout.EnumPopup("Double-clicking:", _target.doubleClickingHotspot); } if (settingsManager != null && settingsManager.playerFacesHotspots) { _target.playerTurnsHead = EditorGUILayout.Toggle("Turn head active?", _target.playerTurnsHead); } EditorGUILayout.Space(); UseInteractionGUI(); if (settingsManager == null || settingsManager.interactionMethod == AC_InteractionMethod.ContextSensitive || settingsManager.interactionMethod == AC_InteractionMethod.CustomScript) { EditorGUILayout.Space(); LookInteractionGUI(); } EditorGUILayout.Space(); InvInteractionGUI(); EditorGUILayout.Space(); UnhandledInvInteractionGUI(); } UnityVersionHandler.CustomSetDirty(_target); }
override public void ShowGUI(List <ActionParameter> parameters) { //Is this the player? isPlayer = EditorGUILayout.Toggle("Is Player?", isPlayer); if (!isPlayer) { controlParameterID = Action.ChooseParameterGUI("Character:", parameters, controlParameterID, ParameterType.GameObject); if (controlParameterID >= 0) { controlConstantID = 0; interactionController = null; } else { interactionController = (SimpleInteractionSystem)EditorGUILayout.ObjectField("Character:", interactionController, typeof(SimpleInteractionSystem), true); controlConstantID = FieldToID(interactionController, controlConstantID); interactionController = IDToField(interactionController, controlConstantID, false); } } rightHandTarget = (Transform)EditorGUILayout.ObjectField("Right Hand Target:", rightHandTarget, typeof(Transform), true); leftHandTarget = (Transform)EditorGUILayout.ObjectField("Left Hand Target:", leftHandTarget, typeof(Transform), true); //What kind of interaction is going to happen? interactionType = (InteractionType)EditorGUILayout.EnumPopup("Interaction Type:", interactionType); //If you're going to be picking up the item, send the item to the interaction controller if (interactionType == InteractionType.PickUp || interactionType == InteractionType.Use) { objParameterID = Action.ChooseParameterGUI("Object to Pick Up:", parameters, objParameterID, ParameterType.GameObject); if (objParameterID >= 0) { objConstantID = 0; intObject = null; } else { intObject = (SimpleInteractionObject)EditorGUILayout.ObjectField("Object to Pick Up:", intObject, typeof(SimpleInteractionObject), true); objConstantID = FieldToID(intObject, objConstantID); intObject = IDToField(intObject, objConstantID, false); } } if (interactionType == InteractionType.PickUp) { rHoldParameterID = Action.ChooseParameterGUI("Right Hold transform:", parameters, rHoldParameterID, ParameterType.GameObject); if (rHoldParameterID >= 0) { rHoldConstantID = 0; rightHoldPosRot = null; } else { rightHoldPosRot = (Transform)EditorGUILayout.ObjectField("Right Hold transform:", rightHoldPosRot, typeof(Transform), true); rHoldConstantID = FieldToID(rightHoldPosRot, rHoldConstantID); rightHoldPosRot = IDToField(rightHoldPosRot, rHoldConstantID, false); } lHoldParameterID = Action.ChooseParameterGUI("Left Hold transform:", parameters, lHoldParameterID, ParameterType.GameObject); if (lHoldParameterID >= 0) { lHoldConstantID = 0; leftHoldPosRot = null; } else { leftHoldPosRot = (Transform)EditorGUILayout.ObjectField("Left Hold transform:", leftHoldPosRot, typeof(Transform), true); lHoldConstantID = FieldToID(leftHoldPosRot, lHoldConstantID); leftHoldPosRot = IDToField(leftHoldPosRot, lHoldConstantID, false); } } //If you're going to drop the item, send the place you want to drop it to the interaction controller else if (interactionType == InteractionType.Drop) { markerParameterID = Action.ChooseParameterGUI("Drop at:", parameters, markerParameterID, ParameterType.GameObject); if (markerParameterID >= 0) { markerID = 0; dropMarker = null; } else { dropMarker = (Marker)EditorGUILayout.ObjectField("Drop at:", dropMarker, typeof(Marker), true); markerID = FieldToID <Marker>(dropMarker, markerID); dropMarker = IDToField <Marker>(dropMarker, markerID, false); } } //If you're going to take out the item, select the item from your inventory else if (interactionType == InteractionType.TakeOut) { if (!inventoryManager) { inventoryManager = AdvGame.GetReferences().inventoryManager; } if (!settingsManager) { settingsManager = AdvGame.GetReferences().settingsManager; } if (inventoryManager) { // Create a string List of the field's names (for the PopUp box) List <string> labelList = new List <string>(); int i = 0; if (parameterID == -1) { invNumber = -1; } if (inventoryManager.items.Count > 0) { foreach (InvItem _item in inventoryManager.items) { labelList.Add(_item.label); // If an item has been removed, make sure selected variable is still valid if (_item.id == invID) { invNumber = i; } i++; } if (invNumber == -1) { ACDebug.LogWarning("Previously chosen item no longer exists!"); invNumber = 0; invID = 0; } parameterID = Action.ChooseParameterGUI("Inventory item:", parameters, parameterID, ParameterType.InventoryItem); if (parameterID >= 0) { invNumber = Mathf.Min(invNumber, inventoryManager.items.Count - 1); invID = -1; } else { invNumber = EditorGUILayout.Popup("Inventory item:", invNumber, labelList.ToArray()); invID = inventoryManager.items[invNumber].id; } objectPrefab = AC.KickStarter.runtimeInventory.GetItem(invID).linkedPrefab; } else { EditorGUILayout.HelpBox("No inventory items exist!", MessageType.Info); invID = -1; invNumber = -1; } } } else if (interactionType == InteractionType.Use) { EditorGUILayout.HelpBox("This interaction will not be called from an animation event.", MessageType.Info); } AfterRunningOption(); }
override public void ShowGUI(List <ActionParameter> parameters) { isPlayer = EditorGUILayout.Toggle("Is Player?", isPlayer); if (!isPlayer) { charToMoveParameterID = Action.ChooseParameterGUI("Character to move:", parameters, charToMoveParameterID, ParameterType.GameObject); if (charToMoveParameterID >= 0) { charToMoveID = 0; charToMove = null; } else { charToMove = (Char)EditorGUILayout.ObjectField("Character to move:", charToMove, typeof(Char), true); charToMoveID = FieldToID <Char> (charToMove, charToMoveID); charToMove = IDToField <Char> (charToMove, charToMoveID, false); } } markerParameterID = Action.ChooseParameterGUI("Marker to reach:", parameters, markerParameterID, ParameterType.GameObject); if (markerParameterID >= 0) { markerID = 0; marker = null; EditorGUILayout.HelpBox("If a Hotspot is passed to this parameter, that Hotspot's 'Walk-to Marker' will be referred to.", MessageType.Info); } else { marker = (Marker)EditorGUILayout.ObjectField("Marker to reach:", marker, typeof(Marker), true); markerID = FieldToID <Marker> (marker, markerID); marker = IDToField <Marker> (marker, markerID, false); } speed = (PathSpeed)EditorGUILayout.EnumPopup("Move speed:", speed); pathFind = EditorGUILayout.Toggle("Pathfind?", pathFind); if (!pathFind) { doFloat = EditorGUILayout.Toggle("Ignore gravity?", doFloat); } willWait = EditorGUILayout.Toggle("Wait until finish?", willWait); if (willWait) { EditorGUILayout.Space(); doTimeLimit = EditorGUILayout.Toggle("Enforce time limit?", doTimeLimit); if (doTimeLimit) { maxTimeParameterID = Action.ChooseParameterGUI("Time limit (s):", parameters, maxTimeParameterID, ParameterType.Float); if (maxTimeParameterID < 0) { maxTime = EditorGUILayout.FloatField("Time limit (s):", maxTime); } onReachTimeLimit = (OnReachTimeLimit)EditorGUILayout.EnumPopup("On reach time limit:", onReachTimeLimit); } } AfterRunningOption(); }