示例#1
0
    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();
            }
        }
    }
示例#2
0
    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);
        }
    }
示例#3
0
    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;
    }
示例#4
0
    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);
        }
    }
示例#5
0
    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.");
            }
        }
    }