private void ArrowGUI(Arrow arrow, string label) { if (arrow != null) { ArrowPrompt _target = (ArrowPrompt)target; arrow.isPresent = EditorGUILayout.Toggle("Provide?", arrow.isPresent); if (arrow.isPresent) { arrow.texture = (Texture2D)EditorGUILayout.ObjectField("Icon texture:", arrow.texture, typeof(Texture2D), true); EditorGUILayout.BeginHorizontal(); arrow.linkedCutscene = (Cutscene)EditorGUILayout.ObjectField("Linked Cutscene:", arrow.linkedCutscene, typeof(Cutscene), true); if (arrow.linkedCutscene == null) { if (GUILayout.Button("Create", GUILayout.MaxWidth(60f))) { Undo.RecordObject(_target, "Auto-create Cutscene"); Cutscene newCutscene = SceneManager.AddPrefab("Logic", "Cutscene", true, false, true).GetComponent <Cutscene>(); newCutscene.gameObject.name = AdvGame.UniqueName(_target.gameObject.name + ": " + label); arrow.linkedCutscene = newCutscene; } } EditorGUILayout.EndHorizontal(); } } }
public override void OnInspectorGUI() { ArrowPrompt _target = (ArrowPrompt)target; _target.arrowPromptType = (ArrowPromptType)EditorGUILayout.EnumPopup("Input type:", _target.arrowPromptType); EditorGUILayout.BeginVertical("Button"); GUILayout.Label("Up arrow", EditorStyles.boldLabel); ArrowGUI(_target.upArrow); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("Button"); GUILayout.Label("Left arrow", EditorStyles.boldLabel); ArrowGUI(_target.leftArrow); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("Button"); GUILayout.Label("Right arrow", EditorStyles.boldLabel); ArrowGUI(_target.rightArrow); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("Button"); GUILayout.Label("Down arrow", EditorStyles.boldLabel); ArrowGUI(_target.downArrow); EditorGUILayout.EndVertical(); if (GUI.changed) { EditorUtility.SetDirty(_target); } }
private void SpawnArrow() { var position = transform.position + (Vector3)(radius * Random.insideUnitCircle); var rotation = Quaternion.Euler(Vector3.forward * Random.Range(0, 360)); currentArrow = Instantiate(arrowPrefab, position, rotation, transform); currentArrow.toNotify = gameObject; }
public override void OnInspectorGUI() { ArrowPrompt _target = (ArrowPrompt)target; EditorGUILayout.BeginVertical("Button"); GUILayout.Label("Settings", EditorStyles.boldLabel); _target.arrowPromptType = (ArrowPromptType)EditorGUILayout.EnumPopup("Input type:", _target.arrowPromptType); _target.disableHotspots = EditorGUILayout.ToggleLeft("Disable Hotspots when active?", _target.disableHotspots); EditorGUILayout.EndVertical(); EditorGUILayout.Space(); EditorGUILayout.BeginVertical("Button"); GUILayout.Label("Up arrow", EditorStyles.boldLabel); ArrowGUI(_target.upArrow, "Up"); EditorGUILayout.EndVertical(); EditorGUILayout.Space(); EditorGUILayout.BeginVertical("Button"); GUILayout.Label("Left arrow", EditorStyles.boldLabel); ArrowGUI(_target.leftArrow, "Left"); EditorGUILayout.EndVertical(); EditorGUILayout.Space(); EditorGUILayout.BeginVertical("Button"); GUILayout.Label("Right arrow", EditorStyles.boldLabel); ArrowGUI(_target.rightArrow, "Right"); EditorGUILayout.EndVertical(); EditorGUILayout.Space(); EditorGUILayout.BeginVertical("Button"); GUILayout.Label("Down arrow", EditorStyles.boldLabel); ArrowGUI(_target.downArrow, "Down"); EditorGUILayout.EndVertical(); if (GUI.changed) { EditorUtility.SetDirty(_target); } }
private void ReturnMainData() { Player player = GameObject.FindWithTag(Tags.player).GetComponent <Player>(); PlayerInput playerInput = GameObject.FindWithTag(Tags.gameEngine).GetComponent <PlayerInput>(); MainCamera mainCamera = GameObject.FindWithTag(Tags.mainCamera).GetComponent <MainCamera>(); RuntimeInventory runtimeInventory = this.GetComponent <RuntimeInventory>(); RuntimeVariables runtimeVariables = runtimeInventory.GetComponent <RuntimeVariables>(); SceneChanger sceneChanger = this.GetComponent <SceneChanger>(); if (player && playerInput && mainCamera && runtimeInventory && runtimeVariables) { sceneChanger.previousScene = saveData.mainData.previousScene; player.transform.position = new Vector3(saveData.mainData.playerLocX, saveData.mainData.playerLocY, saveData.mainData.playerLocZ); player.transform.eulerAngles = new Vector3(0f, saveData.mainData.playerRotY, 0f); player.SetLookDirection(Vector3.zero, true); // Active path player.Halt(); Paths savedPath = Serializer.returnComponent <Paths> (saveData.mainData.playerActivePath); if (savedPath) { player.SetLockedPath(savedPath); } // Active screen arrows playerInput.RemoveActiveArrows(); ArrowPrompt loadedArrows = Serializer.returnComponent <ArrowPrompt> (saveData.mainData.playerActiveArrows); if (loadedArrows) { loadedArrows.TurnOn(); } // Active conversation playerInput.activeConversation = Serializer.returnComponent <Conversation> (saveData.mainData.playerActiveConversation); playerInput.isUpLocked = saveData.mainData.playerUpLock; playerInput.isDownLocked = saveData.mainData.playerDownLock; playerInput.isLeftLocked = saveData.mainData.playerLeftlock; playerInput.isRightLocked = saveData.mainData.playerRightLock; playerInput.runLock = (PlayerMoveLock)saveData.mainData.playerRunLock; runtimeInventory.isLocked = saveData.mainData.playerInventoryLock; playerInput.timeScale = saveData.mainData.timeScale; mainCamera.SetGameCamera(Serializer.returnComponent <GameCamera> (saveData.mainData.gameCamera)); mainCamera.transform.position = new Vector3(saveData.mainData.mainCameraLocX, saveData.mainData.mainCameraLocY, saveData.mainData.mainCameraLocZ); mainCamera.transform.eulerAngles = new Vector3(saveData.mainData.mainCameraRotX, saveData.mainData.mainCameraRotY, saveData.mainData.mainCameraRotZ); if (mainCamera.attachedCamera) { mainCamera.attachedCamera.MoveCameraInstant(); } else { Debug.LogWarning("MainCamera has no attached GameCamera"); } // Inventory AssignInventory(runtimeInventory, saveData.mainData.inventoryData); if (saveData.mainData.selectedInventoryID > -1) { runtimeInventory.SelectItemByID(saveData.mainData.selectedInventoryID); } else { runtimeInventory.SetNull(); } // Variables AssignVariables(runtimeVariables, saveData.mainData.variablesData); // StateHandler StateHandler stateHandler = runtimeInventory.GetComponent <StateHandler>(); if (playerInput.activeConversation) { stateHandler.gameState = GameState.DialogOptions; } else { stateHandler.gameState = GameState.Normal; } // Fade in camera mainCamera.FadeIn(0.5f); playerInput.ResetClick(); } else { if (player == null) { Debug.LogWarning("Load failed - no Player found."); } if (playerInput == null) { Debug.LogWarning("Load failed - no PlayerInput found."); } if (mainCamera == null) { Debug.LogWarning("Load failed - no MainCamera found."); } if (runtimeInventory == null) { Debug.LogWarning("Load failed - no RuntimeInventory found."); } if (runtimeVariables == null) { Debug.LogWarning("Load failed - no RuntimeVariables found."); } if (sceneChanger == null) { Debug.LogWarning("Load failed - no SceneChanger found."); } } }