public enum LineEffect
{
None,
Continue,
Wait
}
[CreateAssetMenu(fileName = "ScriptContainer", menuName = "ScriptableObjects/ScriptContainer", order = 1)]
public class ScriptContainer : ScriptableObject
{
[SerializeField] public ScriptType scriptType;
[SerializeField] public string[] Texts;
[Tooltip("bool이 true면 해당하는 인덱스의 텍스트가 기존 텍스트와 함께 출력")]
[SerializeField] public LineEffect[] lineEffect;
}
스크립트 구조 변경하여 확장성 높임
/// <summary>
/// 맨 처음 게임 시작할 때 호출되는 함수
/// </summary>
public void StartGame(int phase)
{
this.phase = phase;
stage = 1;
currentState = playerTurnState;
terminalText.BackToOriginalText();
board.SetBoard();
}
1차전, 2차전은 phase로 나눔, 단계는 stage로 나눔.
슈도 코드 작성과 기반 작업 완료.

o.Albedo = texCUBE(_myCube, IN.worldRefl).rgb;
worldRefl : 내가 보는 방향과 표면의 노멀을 기준으로 계산된 반사 방향

model import settings에서 Normals를 Calculate로 바꾸고 Smoothing Angle을 조절하면 폴리곤 단위로 노말 계산

struct Input {
float2 uv_myDiffuse;
float2 uv_myBump;
float3 worldRefl; INTERNAL_DATA
};
void surf (Input IN, inout SurfaceOutput o) {
o.Albedo = tex2D(_myDiffuse, IN.uv_myDiffuse).rgb;
o.Normal = UnpackNormal(tex2D(_myBump, IN.uv_myBump)) * _myBright;
o.Normal *= float3(_mySlider, _mySlider, 1);
o.Emission = texCUBE(_myCube, WorldReflectionVector (IN, o.Normal)).rgb;
}

Buffer
Rendering Types
Render Queues