// Use this for initialization // This is given custom execution order before default time so // PersistentObjects are set before anything else initializes void Start() { player = FindObjectOfType <Controller>(); Dialogue.DialogueActor playerActor = player.GetComponent <Dialogue.DialogueActor>(); OnBusyStart.AddListener(player.Freeze); OnBusyEnd.AddListener(player.Unfreeze); // Have dialogue manager make this busy Dialogue.DialogueManager dialogue = FindObjectOfType <Dialogue.DialogueManager>(); if (dialogue != null) { dialogue.OnConversationStart.AddListener(SetBusy); dialogue.OnConversationEnd.AddListener(ClearBusy); // add player dialogue.actors["Player"] = playerActor; } persistentObjects = new List <PersistentObject>(FindObjectsOfType <PersistentObject>()); foreach (PersistentObject po in persistentObjects) { po.controller = this; } // If this scene has dictionary, load from it sceneKey = gameObject.scene.path; Dictionary <string, JObject> objectData; if (SceneLoader.Instance.persistentSceneData.TryGetValue(sceneKey, out objectData)) { LoadPersistentObjects(objectData); } else { // If dictionary not found, create it SceneLoader.Instance.persistentSceneData[sceneKey] = new Dictionary <string, JObject>(); } // TODO move player to entrypoint set int entryIndex = SceneLoader.Instance.EntrypointIndex; if (entryIndex >= 0 && entryIndex < Entrypoints.Count) { // HACK move player to indicated location Transform entryPoint = Entrypoints[entryIndex]; player.transform.position = entryPoint.position; player.transform.rotation = entryPoint.rotation; } }
private void Awake() { actor = GetComponent <Dialogue.DialogueActor>(); }