コード例 #1
0
    public override void OnInspectorGUI()
    {
#if true
        DrawDefaultInspector();

        GUI.enabled = false;

        GUILayout.Label("Mouse Scroll down and next message.");
        GUILayout.Label("Keyboard Space Down and next message.");

        GUI.enabled = true;
#else
        EditorGUILayout.LabelField("please attach a NewGame Info ( ViNoSaveInfo ). ");
        EditorGUILayout.LabelField("LevelName and GO attached a ScenarioNode in Resources folder is required.");

        ScenarioCtrl sc = target as ScenarioCtrl;
        sc.newGameInfo   = EditorGUILayout.ObjectField("NewGameInfo", sc.newGameInfo, typeof(ViNoSaveInfo), false) as ViNoSaveInfo;
        sc.quickSaveSlot = EditorGUILayout.ObjectField("QuickSaveSlot", sc.quickSaveSlot, typeof(ViNoSaveInfo), false) as ViNoSaveInfo;
        sc.saveInfo      = EditorGUILayout.ObjectField("CurrentSaveInfo", sc.saveInfo, typeof(ViNoSaveInfo), false) as ViNoSaveInfo;

        GUI.enabled = false;

        // This is true.
        sc.destroyPrevScenario = EditorGUILayout.Toggle("DestroyPrevScenario", sc.destroyPrevScenario);
        sc.fileName            = EditorGUILayout.TextField("CurrentFileName", sc.fileName);        // , typeof(ViNoSaveInfo) , false ) as ViNoSaveInfo;

        GUI.enabled = true;
#endif
    }
コード例 #2
0
    void OnClickToTitle()
    {
#if false
        Application.LoadLevel("Title");
#else
        ScenarioCtrl.PlayScenario(Application.loadedLevelName, "Title");
#endif
        ToggleActiveMenuPanel();
    }
コード例 #3
0
 void Awake()
 {
     if (m_Instance == null)
     {
         m_Instance = this;
         DontDestroyOnLoad(this.gameObject);
     }
     else
     {
         Destroy(gameObject);
     }
 }
コード例 #4
0
    static public bool CheckQuickSaveFileAndLoadFromStorage()
    {
        bool isQuickSaveFileExists = ExternalAccessor.IsSaveDataFileExists(k_QuickSaveFileName);

        if (isQuickSaveFileExists)
        {
            ScenarioCtrl sc = ScenarioCtrl.Instance;
            // Load SaveInfo from Storage.
            ViNo.LoadDataFromStorage(k_QuickSaveFileName, ref sc.quickSaveSlot);
        }
        else
        {
            Debug.LogWarning("Quick Save File not exists.");
        }

        return(isQuickSaveFileExists);
    }
コード例 #5
0
    static public void CreateConvScene(string templScenePath)
    {
        GameObject sceneRoot = CreateTemplScene(templScenePath);

        sceneRoot.name = "A Conversation Scene";

        string scenarioName = "A_Conversation";

        if (!System.IO.Directory.Exists("Assets/" + scenarioName))
        {
            AssetDatabase.CreateFolder("Assets", scenarioName);
        }

        GameObject scenarioObj = ViNoToolUtil.CreateANewScenario(scenarioName, true);
        GameObject startObj    = scenarioObj.transform.FindChild("START").gameObject;
//		scenarioObj.transform.parent.transform.parent = sceneRoot.transform;

        GameObject    node0         = new GameObject("0_Scene");
        LoadSceneNode loadSceneNode = node0.AddComponent <LoadSceneNode>();

        loadSceneNode.sceneName  = "Scene1";
        loadSceneNode.method     = LoadSceneNode.Methods.DESTROY_AND_LOAD;
        loadSceneNode.withFadeIn = true;

        loadSceneNode.transform.parent = startObj.transform;

        DialogPartNode dlgNode = ViNoToolUtil.AddDialogPartNode(startObj.transform);

        dlgNode.name = "1_Dialog";
        DialogPartData data0 = dlgNode.AddData("", "");
        DialogPartData data1 = dlgNode.AddData("Sachi", "Hello. I am Sachi.");
        DialogPartData data2 = dlgNode.AddData("", "");
        DialogPartData data3 = dlgNode.AddData("Maiko", "Hi. Sachi.");
        DialogPartData data4 = dlgNode.AddData("Sachi", "Bye Bye !");
        DialogPartData data5 = dlgNode.AddData("Maiko", "Bye Bye !");
        DialogPartData data6 = dlgNode.AddData("", "");

        data0.enterActorEntries              = new DialogPartData.ActorEntry[1];
        data0.enterActorEntries[0]           = new DialogPartData.ActorEntry();
        data0.enterActorEntries[0].actorName = "Sachi";
        data0.actionID = DialogPartNodeActionType.EnterActor;
        data0.enterActorEntries[0].position = ViNoToolkit.SceneEvent.ActorPosition.middle_left;

        data1.isName = true;

        data2.enterActorEntries              = new DialogPartData.ActorEntry[1];
        data2.enterActorEntries[0]           = new DialogPartData.ActorEntry();
        data2.enterActorEntries[0].actorName = "Maiko";
        data2.actionID = DialogPartNodeActionType.EnterActor;
        data2.enterActorEntries[0].position = ViNoToolkit.SceneEvent.ActorPosition.middle_right;
        data3.isName = true;

        data4.isName = true;
        data5.isName = true;

        data6.actionID                      = DialogPartNodeActionType.ExitActor;
        data6.exitActorEntries              = new DialogPartData.ActorEntry[2];
        data6.exitActorEntries[0]           = new DialogPartData.ActorEntry();
        data6.exitActorEntries[1]           = new DialogPartData.ActorEntry();
        data6.exitActorEntries[0].actorName = "Sachi";
        data6.exitActorEntries[1].actorName = "Maiko";

#if false
        GameObject parentObj = GameObject.Find("Panels");

        DrawObjectsTab.CreateBG("BG", parentObj);
        GameObject ch1 = DrawObjectsTab.Create2Layer("Ch1", parentObj);
        GameObject ch2 = DrawObjectsTab.Create2Layer("Ch2", parentObj);

        ch1.transform.localPosition = new Vector3(-120f, 0f, 0f);
        ch2.transform.localPosition = new Vector3(120f, 0f, 0f);

        AssetDatabase.MoveAsset("Assets/BG", "Assets/" + scenarioName + "/BG");
        AssetDatabase.MoveAsset("Assets/Ch1", "Assets/" + scenarioName + "/Ch1");
        AssetDatabase.MoveAsset("Assets/Ch2", "Assets/" + scenarioName + "/Ch2");
#endif

        string       scenarioFlagDataPath = "Assets/" + scenarioName + "/" + scenarioName + "Flags.asset";
        string       scenarioSaveDataPath = "Assets/" + scenarioName + "/" + scenarioName + "SaveData.asset";
        FlagTable    flagTable            = ScriptableObjectUtility.CreateScriptableObject("FlagTable", scenarioFlagDataPath) as FlagTable;
        ViNoSaveInfo saveInfo             = ScriptableObjectUtility.CreateScriptableObject("ViNoSaveInfo", scenarioSaveDataPath) as ViNoSaveInfo;
        ScenarioNode scenarioNode         = scenarioObj.GetComponent <ScenarioNode>();
        scenarioNode.m_PlayAtStart = true;
        scenarioNode.flagTable     = flagTable;
//		scenarioNode.saveInfo = saveInfo;

        ScenarioCtrl scenarioCtrl = GameObject.FindObjectOfType(typeof(ScenarioCtrl)) as ScenarioCtrl;
        scenarioCtrl.quickSaveSlot = saveInfo;
        scenarioCtrl.saveInfo      = saveInfo;

        // Create an ActorLibrary and a SceneLibrary.
        string actorLibPrefabPath = "Assets/" + scenarioName + "/ActorLibrary.prefab";
        string sceneLibPrefabPath = "Assets/" + scenarioName + "/SceneLibrary.prefab";

        ViNoScenarioDataUtil.CreateActorLibrary(actorLibPrefabPath);
        ViNoScenarioDataUtil.CreateSceneLibrary(sceneLibPrefabPath);
        GameObject.DestroyImmediate(GameObject.Find("ActorLibrary"));
        GameObject.DestroyImmediate(GameObject.Find("SceneLibrary"));

//		ViNoToolkit.ActorInfo actor1 = ViNoScenarioDataUtil.CreateActorInfo() as ViNoToolkit.ActorInfo;
        ViNoToolkit.SceneEvent sceneEvt = GameObject.FindObjectOfType(typeof(ViNoToolkit.SceneEvent)) as ViNoToolkit.SceneEvent;

        ViNoToolkit.ActorLibrary actorLib = AssetDatabase.LoadAssetAtPath(actorLibPrefabPath, typeof(ViNoToolkit.ActorLibrary)) as ViNoToolkit.ActorLibrary;
        ViNoToolkit.SceneLibrary sceneLib = AssetDatabase.LoadAssetAtPath(sceneLibPrefabPath, typeof(ViNoToolkit.SceneLibrary)) as ViNoToolkit.SceneLibrary;

/*		actorLib.actorEntries = new ViNoToolkit.ActorInfo[ 1 ];
 *              actorLib.actorEntries[ 0 ] = actor1;
 * //*/
        sceneEvt.actorLib = actorLib;
        sceneEvt.sceneLib = sceneLib;
    }
コード例 #6
0
ファイル: ViNoAPI.cs プロジェクト: wangsy1985/UnityProjects
 // if info's ScenarioNode found in this Level, then play that.
 static public void PlayScenario(ViNoSaveInfo info)
 {
     ScenarioCtrl.PlayScenario(info);
 }
コード例 #7
0
ファイル: ViNoAPI.cs プロジェクト: wangsy1985/UnityProjects
 static public void PlayScenario(string scenarioResourcePath)
 {
     ScenarioCtrl.PlayScenario(Application.loadedLevelName, scenarioResourcePath);
 }
コード例 #8
0
    /// <summary>
    /// If Playing a ScenarioNode , then the Played Scenario is the Instance.
    /// </summary>
    public void Play()
    {
        CheckInstance();

        SystemUtility.ClearAllTextBoxMessage();

        VM vm = VM.Instance;

        vm.currentScenarioName = gameObject.name;

        // ScenarioScript Mode.

/*		if( useScenarioScript ){
 *                      ViNoToolkit.KAGInterpreter kag = new ViNoToolkit.KAGInterpreter();
 *                      List<byte> byteList = kag.Interpret( scenarioScript.text );
 *                      ByteCodes btcodes = new ByteCodes( byteList.ToArray() );
 *
 *                      btcodes.Add( Opcode.END );
 *
 *                      vm.SetCode( btcodes.GetCode() );
 *              }
 * //*/
        // Default Mode.
//		else{
        ByteCodes btcodes = null;

        if (startNode.gameObject == this.gameObject)
        {
            btcodes = new ByteCodes();
            btcodes.Init();
#if true
            startNode.ToByteCode(btcodes);
#else
            TEST_ADD_CODE(btcodes, GetComponents <ViNode>());
#endif
        }
        else
        {
            btcodes = Compile();                    //useCompiledScript ? new ByteCodes( compiledScriptFile.bytes ) : Compile();
        }

        btcodes.Add(Opcode.END);

        vm.SetCode(btcodes.GetCode());
//		}

        if (startFromSave)
        {
            //if ScenarioCtrl exists in this scene, then loaddata from that info.
            ScenarioCtrl sc = ScenarioCtrl.Instance;
            if (sc != null)
            {
                ViNo.LoadData(sc.fileName, ref sc.saveInfo);
            }
        }
        else
        {
            if (useScenarioScript)
            {
                vm.Run();
            }
            else
            {
                if (startNode == null)
                {
                    vm.Run();
                }
                else
                {
                    PlayFromStartNode();
                }
            }
        }
    }
コード例 #9
0
ファイル: ScenarioCtrl.cs プロジェクト: Joon-min/wiper
 void Awake()
 {
     if( m_Instance == null ){
         m_Instance = this;
         DontDestroyOnLoad( this.gameObject );
     }
     else{
         Destroy( gameObject );
     }
 }