コード例 #1
0
        public IEnumerator Wait(string spriteTags, string[] args)
        {
            float i;

            if (!float.TryParse(NovelHelper.CombineAll(args), out i))
            {
                throw new NRuntimeException("不正な数値です.");
            }
            yield return(new WaitForSeconds(i));
        }
コード例 #2
0
        int GetLine(string label)
        {
            // Nullチェックと整形
            label = NovelHelper.GetLabelString(label);

            if (!code.Labels.ContainsKey(label))
            {
                throw new NRuntimeException($"ラベル \"{label}\"が存在しません.");
            }
            return(code.Labels[label]);
        }
コード例 #3
0
        public IEnumerator Goto(string t, params string[] args)
        {
            if (args.Length == 0)
            {
                throw new NRuntimeException("移動先のラベルが指定されていません.");
            }
            var label = GetLine(NovelHelper.CombineAll(args));

            // 移動する
            Goto(label);
            yield break;
        }
コード例 #4
0
 /// <summary>
 /// 指定されたラベルから,コード実行を行います.ラベルが空であったり,存在しない場合冒頭から実行します.
 /// </summary>
 /// <returns>コルーチンを返却します.MonoBehaviourで実行するようにしてください.</returns>
 /// <param name="label">Label.</param>
 public IEnumerator Call(string label = default(string))
 {
     ProgramCounter = 0;
     NullCheck(code);
     label = NovelHelper.GetLabelString(label);
     if (!string.IsNullOrWhiteSpace(label))
     {
         if (code.Labels.ContainsKey(label))
         {
             ProgramCounter = code.Labels[label];
         }
     }
     IsRunning = true;
     return(StartEngine());
 }