viewimage.php?id=2abcdd23dad63db0&no=29bcc427bd8777a16fb3dab004c86b6fe0f25512895f218fe5112c1029e51c14bed8e6ec9cbbb9975be20833a90788113bd95049813580d4ef37f9dee476

์ € ์‚ฌ์ง„์˜ ๋‚ด์šฉ์„ ์–˜๊ธฐํ•˜์ž๋ฉด


public class TextAnimScript : MonoBehaviour

{

ย  ย  [SerializeField]

ย  ย  private Text txtMessage;


ย  ย  [SerializeField]

ย  ย  private AudioSource typeSFX1;


ย  ย  void Start()

ย  ย  {

ย  ย  ย  ย  //"์œค์Šฌ์ด ๊ธธ์„ ๋ง‰์•„์„ฐ๋‹ค!" ์ถœ๋ ฅ. "๊ธธ์„" ๊นŒ์ง€ ์ถœ๋ ฅํ•˜๊ณ  1.5์ดˆ ๊ธฐ๋‹ค๋ฆฐ ๋’ค, ๊ทธ ๋’ท๋ถ€๋ถ„ ์ถœ๋ ฅ.

ย  ย  ย  ย  //StartCoroutine(PrintMessageByCourtine(" * ์œค์Šฌ์ด ๊ธธ์„<1.5> ๋ง‰์•„์„ฐ๋‹ค!"));

ย  ย  ย  ย  StartCoroutine(PrintMessageByCourtine(" * ์œค์Šฌ์ด ๊ธธ์„ ๋ง‰์•„์„ฐ๋‹ค!"));

ย  ย  }


ย  ย  IEnumerator PrintMessageByCourtine(string message)

ย  ย  {

ย  ย  ย  ย  int start =-1;//๋”œ๋ ˆ์ด ๋ช…๋ น์–ด์ธ "<"์˜ ์œ„์น˜.

ย  ย  ย  ย  int end = 0;//๋”œ๋ ˆ์ด ๋ช…๋ น์–ด์ธ ">"์˜ ์œ„์น˜.


ย  ย  ย  ย  bool bStart = false;

ย  ย  ย  ย  string time = string.Empty;

ย  ย  ย  ย  for (int i = 0; i < message.Length; i++)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  if (message[i] == '>')

ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  end = i + 1;

ย  ย  ย  ย  ย  ย  ย  ย  break;

ย  ย  ย  ย  ย  ย  }


ย  ย  ย  ย  ย  ย  if (bStart)

ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  time += message[i];

ย  ย  ย  ย  ย  ย  }


ย  ย  ย  ย  ย  ย  if(message[i] == '<')

ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  start = i;

ย  ย  ย  ย  ย  ย  ย  ย  bStart = true;

ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  }


ย  ย  ย  ย  string copyMessage = message.Remove(start, end - start); //48 ๋ฒˆ์งธ ์ค„

ย  ย  ย  ย  txtMessage.text = string.Empty;

ย  ย  ย  ย  for (int i = 0;i < copyMessage.Length;i++)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  if (i == start)

ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  yield return new WaitForSeconds(float.Parse(time));

ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  ย  ย  txtMessage.text += copyMessage[i];

ย  ย  ย  ย  ย  ย  yield return new WaitForSeconds(0.05f);

ย  ย  ย  ย  }

ย  ย  }

}


์ž…๋‹ˆ๋‹ค.


์ € ์ฝ”๋“œ์˜ ์ž„๋ฌด๋Š” Text์— ์œ„์™€ ๊ฐ™์€ ๋‚ด์šฉ์„ ์–ธ๋”ํ…Œ์ผ ๋ฐฉ์‹์œผ๋กœ ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅ๋˜๊ฒŒ ํ•˜๋Š” ๊ฒ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , <๋กœ ์‹œ์ž‘ํ•˜๊ณ  >๋กœ ๋๋‚˜๋Š” ๊ธ€์ด ์žˆ์œผ๋ฉด ๊ทธ ์•ˆ์— ์žˆ๋Š” ์ˆซ์ž๋งŒํผ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๊ทธ ๋’ท๋ถ€๋ถ„์ด ์ถœ๋ ฅ๋˜๋Š” ์ฝ”๋“œ์ด๊ตฌ์š”.


๊ทธ๋Ÿฐ๋ฐ, ์ด์ƒํ•˜๊ฒŒ 48๋ฒˆ์งธ ์ค„์ด ์—๋Ÿฌ๊ฐ€ ๋œจ๋„ค์š”... ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ข‹์„๊นŒ์š”?


์ €๋„ ํ•ด๊ฒฐ์„ ํ•˜๊ณ  ์‹ถ์ง€๋งŒ, ์›Œ๋‚™ ์ฝ”๋”ฉ์„ ์ž˜ ์•ˆํ•˜๊ณ  ๋„ํŠธ์—๋งŒ ๋น ์ง€๋‹ค๋ณด๋‹ˆ, ๊ฒฐ๊ตญ ์ด๋ ‡๊ฒŒ๊นŒ์ง€ ๋๋„ค์š”...


์ •๋ง ์ฃ„์†กํ•ฉ๋‹ˆ๋‹คT.T


ArgumentOutOfRangeException: Cannot be negative.

Parameter name: startIndex

System.String.Remove (Int32 startIndex, Int32 count) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/String.cs:1743)

TextAnimScript+<PrintMessageByCourtine>c__Iterator0.MoveNext () (at Assets/Script/TextAnimScript.cs:48)

UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)

UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)

TextAnimScript:Start() (at Assets/Script/TextAnimScript.cs:18)