if (!stop)
{
switch (events[played][eventNum]["event"])
{
case 0:
Debug.Log(3);
SpeakText.Add((string)events[played][eventNum]["3"]);
SpeakerName.Add((string)events[played][eventNum]["1"]);
DialogOJ.transform.GetChild(1).GetComponent().text = (string)events[played][eventNum]["3"];
DialogOJ.transform.GetChild(2).GetComponent().text = (string)events[played][eventNum]["1"];
DialogOJ.SetActive(true);
stop = true;
break;
case 1:
switch (events[played][eventNum]["2"])
{
case "합":
if (((int)events[played][eventNum]["3"]).ToString().Contains("'"))
{
VaryAndSwitch.instance.Var[(int)events[played][eventNum]["1"]] += int.Parse(((int)events[played][eventNum]["3"]).ToString().Replace("'", ""));
}
else
{
VaryAndSwitch.instance.Var[(int)events[played][eventNum]["1"]] += (int)events[played][eventNum]["3"];
}
break;
case "차":
if (((int)events[played][eventNum]["3"]).ToString().Contains("'"))
{
VaryAndSwitch.instance.Var[(int)events[played][eventNum]["1"]] -= int.Parse(((int)events[played][eventNum]["3"]).ToString().Replace("'", ""));
}
else
{
VaryAndSwitch.instance.Var[(int)events[played][eventNum]["1"]] -= (int)events[played][eventNum]["3"];
}
break;
case "곱":
if (((int)events[played][eventNum]["3"]).ToString().Contains("'"))
{
VaryAndSwitch.instance.Var[(int)events[played][eventNum]["1"]] *= int.Parse(((int)events[played][eventNum]["3"]).ToString().Replace("'", ""));
}
else
{
VaryAndSwitch.instance.Var[(int)events[played][eventNum]["1"]] *= (int)events[played][eventNum]["3"];
}
break;
case "몫":
if (((int)events[played][eventNum]["3"]).ToString().Contains("'"))
{
VaryAndSwitch.instance.Var[(int)events[played][eventNum]["1"]] /= int.Parse(((int)events[played][eventNum]["3"]).ToString().Replace("'", ""));
}
else
{
VaryAndSwitch.instance.Var[(int)events[played][eventNum]["1"]] /= (int)events[played][eventNum]["3"];
}
break;
case "같":
if (((int)events[played][eventNum]["3"]).ToString().Contains("'"))
{
VaryAndSwitch.instance.Var[(int)events[played][eventNum]["1"]] = int.Parse(((int)events[played][eventNum]["3"]).ToString().Replace("'", ""));
}
else
{
VaryAndSwitch.instance.Var[(int)events[played][eventNum]["1"]] = (int)events[played][eventNum]["3"];
}
break;
case "나":
if (((int)events[played][eventNum]["3"]).ToString().Contains("'"))
{
VaryAndSwitch.instance.Var[(int)events[played][eventNum]["1"]] %= int.Parse(((int)events[played][eventNum]["3"]).ToString().Replace("'", ""));
}
else
{
VaryAndSwitch.instance.Var[(int)events[played][eventNum]["1"]] %= (int)events[played][eventNum]["3"];
}
break;
}
eventNum++;
break;
case 2:
switch (events[played][eventNum]["2"])
{
case "같":
if (((string)events[played][eventNum]["3"]).Contains("'"))
{
VaryAndSwitch.instance.swc[(int)events[played][eventNum]["1"]] = bool.Parse(((string)events[played][eventNum]["3"]).Replace("'", ""));
}
else
{
VaryAndSwitch.instance.swc[(int)events[played][eventNum]["1"]] = bool.Parse((string)events[played][eventNum]["3"]);
}
break;
case "다":
if (((string)events[played][eventNum]["3"]).Contains("'"))
{
VaryAndSwitch.instance.swc[(int)events[played][eventNum]["1"]] = !bool.Parse(((string)events[played][eventNum]["3"]).Replace("'", ""));
}
else
{
VaryAndSwitch.instance.swc[(int)events[played][eventNum]["1"]] = !bool.Parse((string)events[played][eventNum]["3"]);
}
break;
}
eventNum++;
break;
case 3:
stop = true;
break;
case 4:
stop = true;
break;
case 6:
think.instance.GetClue((int)events[played][eventNum]["1"]);
eventNum++;
break;
case 7:
think.instance.LoseClue((int)events[played][eventNum]["1"]);
eventNum++;
break;
case 8:
player.GetComponent().CanMove = false;
eventNum++;
break;
case 10:
choices.SetActive(true);
choices.transform.GetChild(0).GetChild(0).GetComponent().text = (string)events[played][eventNum]["1"];
choices.transform.GetChild(1).GetChild(0).GetComponent().text = (string)events[played][eventNum]["2"];
choices.transform.GetChild(2).GetChild(0).GetComponent().text = (string)events[played][eventNum]["3"];
stop = true;
break;
case 12:
int a = 0;
for (int i = 0; i != -1;)
{
if (events[played][eventNum + i]["event"].Equals(12))
a++;
else if (events[played][eventNum + i]["event"].Equals(14))
a--;
if (a.Equals(0))
{
i = -1;
}
else
{
eventNum++;
}
}
break;
case 13:
int b = 0;
for (int i = 0; i != -1;)
{
if (events[played][eventNum + i]["event"].Equals(13))
b++;
else if (events[played][eventNum + i]["event"].Equals(14))
b--;
if (b.Equals(0))
{
i = -1;
}
else
{
eventNum++;
}
}
break;
case 32:
int c = 0;
for (int i = 0; i != -1;)
{
if (events[played][eventNum + i]["event"].Equals(32))
c++;
else if (events[played][eventNum + i]["event"].Equals(33))
c--;
if (c.Equals(0))
{
i = -1;
}
else
{
eventNum++;
}
}
break;
case 42:
int d = 0;
for (int i = 0; i != -1;)
{
if (events[played][eventNum + i]["event"].Equals(42))
d++;
else if (events[played][eventNum + i]["event"].Equals(43))
d--;
if (d.Equals(0))
{
i = -1;
}
else
{
eventNum++;
}
}
break;
default:
eventNum++;
break;
}
}
앞뒤 다 빼고 적었는데 쨌든 맨 처음 if문 뒤 까지는 debug.log로 확인하니까 바로바로 뜨는데 switch문 안쪽은 거의 1초정도 기다려야 나옴;;
그동안 프레임이 튀는것도 아니고 움직일 수도 있는데 왜임???
프로그래밍 잘 몰라서 모르겠음,, switch문이 그렇게 느리지도 않을텐데 머지;;
events[played][eventNum]["event"]이거 처리가 늦는건가 싶어서 앞으로 빼서 확인해도 그럼
ㅠㅠ
진짜 개좆같은 질문글이네
어케해야할까 질문 거의 첨이라
ㄹㅇ 누가 다읽냐 이걸
형변환 너무 많이해서.?
질문이따구로하면 아무도 답안해줌
if 바로 뒤까지 바로 뜬다면 스위치 바로 앞에 디버그 찍고 스위치 끝나자마자 디버그 찍어봐라 그럼 매번 순서대로 스위치 앞 스위치 안 스위치 밖 이렇게 나옴? 그게 아니면 니가 원하는 case에 못들어가고 있는거지... 스위치 바로 앞에서 events[played][eventNum]["event"] 값이 뭔지도 찍어봐
어디가 왜 느린지는 프로파일러를 돌려보자
저런싣으로 코드 처올리면 누가 다 처 읽고잇냐.
replace 빼도 느림? 난 저게 의심 스럽네.
for문 누가 저렇게 쓰라고 가르치드나? while break를 쓰던가 무한루프 걱정되면 맥시멈 100번까지만 돌고 break하던가.. 저기서 느려지는 건 반복문 밖에 없음. 저 for문 10만번 돌아가는 거 아니냐