示例#1
0
        public override void Run_Node()
        {
            Actor actor_script;

            // Check if the actor is already present
            if (ActorManager.Is_Actor_On_Scene(actor_name))
            {
                // Actor is already on the scene
                Debug.Log("Actor " + actor_name + " already on scene");
                actor_script = ActorManager.Get_Actor(actor_name).GetComponent <Actor>();
                Finish_Node();
                return;
            }
            else
            {
                // Actor is not in the scene. Instantiate it
                if (VNSceneManager.verbose_debug_logs)
                {
                    Debug.Log("Creating new actor " + actor_name);
                }

                if (destination == Actor_Positions.CUSTOM && custom_position != null)
                {
                    actor_script = ActorManager.Instantiate_Actor(actor_name, destination, custom_position);
                }
                else
                {
                    actor_script = ActorManager.Instantiate_Actor(actor_name, destination);
                }
            }
            SaveManager.SetSaveFeature(this, actor_script.gameObject);

            switch (entrance_type)
            {
            case Entrance_Type.Slide_In:
                actor_script.Slide_In(destination, 2.0f);
                Finish_Node();
                break;

            case Entrance_Type.Fade_In:
                actor_script.Place_At_Position(destination);
                actor_script.Fade_In(fade_in_time);
                StartCoroutine(Wait(fade_in_time + 0.2f));
                break;

            case Entrance_Type.None:
                Finish_Node();
                break;
            }
        }