//当たり判定の情報を作成 void MakeHitGroups(List <UguiNovelTextCharacter> characterDataList) { this.HitGroupLists = new List <UguiNovelTextHitArea>(); int index = 0; //一行ぶん(改行までの)の処理をループ内で処理 while (index < characterDataList.Count) { UguiNovelTextCharacter currentData = characterDataList[index]; if (currentData.charData.CustomInfo.IsHitEventTop) { CharData.HitEventType type = currentData.CustomInfo.HitEventType; string arg = currentData.CustomInfo.HitEventArg; List <UguiNovelTextCharacter> characterList = new List <UguiNovelTextCharacter>(); characterList.Add(currentData); ++index; while (index < characterDataList.Count) { UguiNovelTextCharacter c = characterDataList[index]; if (!c.CustomInfo.IsHitEvent || c.CustomInfo.IsHitEventTop) { break; } characterList.Add(c); ++index; } HitGroupLists.Add(new UguiNovelTextHitArea(NovelText, type, arg, characterList)); } else { ++index; } } }
public UguiNovelTextHitArea(UguiNovelText novelText, CharData.HitEventType type, string arg, List <UguiNovelTextCharacter> characters) { this.novelText = novelText; this.HitEventType = type; this.Arg = arg; this.characters = characters; }