Warcorrespondents/Assets/Scripts/抽象的东西/PolymorphicAdministrator.cs
SAIPO ca4294b0bf 1.完善了对话内容,使对话内容更加口语化和方言化。
2.添加了Shader的框架(与屏幕后特效相关)
 1)加入了LightController的代码文件,主要控制烛光等灯光的空气扰动现象
 2)加入了VolumeController的代码文件,主要与屏幕后特效的控制变量相关
 3)在场景中加入了Volume的对象,控制屏幕后特效Shader的运行
3.挪动了场景中煤油灯的位置,并且为煤油灯添加了会产生空气扰动使光范围发生变化的功能
4.为测试场景中的镜子添加了临时提示光边Shader
2021-08-14 07:43:34 +08:00

45 lines
1.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PolymorphicAdministrator : MonoBehaviour
{
// Start is called before the first frame update
//多态管理员,旨在对同一个场景进行不同的初始化,以节省空间
private IndexRecoder indexRecoder;//记录者物体
[Tooltip("多态管理员,此参数记录着“这个场景有几种状态,这几个状态的名称分别是什么”,这样的信息,请键入不同的演出名")]
public string[] statesNames;
[Tooltip("多态管理员,此参数记录着“当场景为此状态时,应该执行怎样的初始化呢?”这样的信息,请拖入事件")]
public Event[] statesEvents;
void Start()
{
indexRecoder = FindObjectOfType<IndexRecoder>();//找到记录者物体
TransfromToAState();
}
//初始化为某个多态中的一种,根据是记录者中的演出名
private void TransfromToAState()
{
for(int i = 0; i < statesNames.Length; i++)
{
//遍历每一种多态名
if(indexRecoder.stageName.Equals(statesNames[i]))//如果是第i种多态
{
try
{
Debug.Log("尝试载入多态: "+ statesEvents[i].name);
statesEvents[i].OnCall();//则执行对应事件进行场景的初始化
}
catch(System.NullReferenceException e)
{
Debug.Log("此多态没有被赋予事件,可能是场景本身初始状态就是多态中的一种,所以不需要初始化");
e.ToString();
}
}
}
}
}