SceneVRTouch.cs 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using MaidStatus;
  5. using UnityEngine;
  6. public class SceneVRTouch : MonoBehaviour
  7. {
  8. private void Start()
  9. {
  10. GameMain.Instance.CharacterMgr.DeactivateCharaAll();
  11. this.m_maid = GameMain.Instance.CharacterMgr.GetMaid(0);
  12. this.m_maid.Visible = true;
  13. Dictionary<string, string> tag_backup = GameMain.Instance.ScriptMgr.adv_kag.tag_backup;
  14. string a;
  15. if (tag_backup != null && tag_backup.TryGetValue("name", out a) && a == "SceneVRTouch")
  16. {
  17. string text;
  18. if (tag_backup.TryGetValue("label_end", out text))
  19. {
  20. this.m_strScriptArgLabelEnd = text;
  21. }
  22. if (tag_backup.TryGetValue("label_ft", out text))
  23. {
  24. this.m_strScriptArgLabelFT = text;
  25. }
  26. }
  27. GameMain.Instance.ScriptMgr.adv_kag.MessageWindowMgr.CloseMessageWindowPanel();
  28. this.m_maid.EyeToCamera(Maid.EyeMoveType.目と顔を向ける, 0f);
  29. GameMain.Instance.MainLight.Reset();
  30. GameMain.Instance.MainCamera.Reset(CameraMain.CameraType.Target, true);
  31. GameMain.Instance.MainCamera.SetPos(new Vector3(0f, 1.4871f, 1f));
  32. GameMain.Instance.MainCamera.SetRotation(new Vector3(0f, -180f, 0f));
  33. this.m_lstBgInfo = this.ReadBGList();
  34. foreach (SceneVRTouch.BGInfo bginfo in this.m_lstBgInfo)
  35. {
  36. SceneVRTouch.ButtonBG buttonBG = new SceneVRTouch.ButtonBG();
  37. buttonBG.texIcon = bginfo.texThumb;
  38. buttonBG.m_bg = bginfo;
  39. this.m_listBg.Add(buttonBG);
  40. }
  41. this.m_listTouchMotionScript = this.ReadMotionList();
  42. foreach (SceneVRTouch.TouchMotionScript touchMotionScript in this.m_listTouchMotionScript)
  43. {
  44. SceneVRTouch.ButtonPose buttonPose = new SceneVRTouch.ButtonPose();
  45. buttonPose.texIcon = touchMotionScript.m_texThumb;
  46. buttonPose.m_motion = touchMotionScript;
  47. this.m_listPose.Add(buttonPose);
  48. }
  49. this.m_dicTouchVoiceScript = this.ReadVoiceList();
  50. this.m_TouchMgr = new VRTouchMgr();
  51. this.m_MotionScriptMgr = GameMain.Instance.ScriptMgrFast;
  52. GameObject gameObject = GameObject.Find("Cancel");
  53. this.m_btnEnd = gameObject.GetComponent<UIButton>();
  54. EventDelegate.Add(this.m_btnEnd.onClick, new EventDelegate.Callback(this.OnButtonEndClick));
  55. GameMain.Instance.MainCamera.FadeOut(0f, false, null, true, default(Color));
  56. base.StartCoroutine(this.CoLoadWait());
  57. }
  58. public void OnDestroy()
  59. {
  60. if (this.m_MotionScriptMgr != null)
  61. {
  62. this.m_MotionScriptMgr.StopAndResetScriptAll();
  63. }
  64. }
  65. private IEnumerator CoLoadWait()
  66. {
  67. while (GameMain.Instance.CharacterMgr.IsBusy())
  68. {
  69. yield return null;
  70. }
  71. GameMain.Instance.CharacterMgr.ResetCharaPosAll();
  72. this.m_maid.boMabataki = true;
  73. if (this.m_maid.body0.IsCrcBody)
  74. {
  75. MaidColliderCollect.AddCollider(this.m_maid, MaidColliderCollect.ColliderType.Crc);
  76. }
  77. else
  78. {
  79. MaidColliderCollect.AddCollider(this.m_maid, MaidColliderCollect.ColliderType.Grab);
  80. }
  81. MaidColliderCollect.AddCollider(this.m_maid, MaidColliderCollect.ColliderType.Touch);
  82. foreach (SceneVRTouch.TouchMotionScript touchMotionScript in this.m_listTouchMotionScript)
  83. {
  84. string[] array = touchMotionScript.m_strNeutralScript.Split(new char[]
  85. {
  86. '*'
  87. });
  88. this.m_MotionScriptMgr.LoadAndCacheScript(array[0]);
  89. this.m_MotionScriptMgr.LoadMotionCacheKag(array[0]);
  90. foreach (KeyValuePair<VRTouchMgr.ETouchPos, Dictionary<VRTouchMgr.ETouchBehavior, string>> keyValuePair in touchMotionScript.m_dicTouchScript)
  91. {
  92. foreach (KeyValuePair<VRTouchMgr.ETouchBehavior, string> keyValuePair2 in keyValuePair.Value)
  93. {
  94. array = keyValuePair2.Value.Split(new char[]
  95. {
  96. '*'
  97. });
  98. this.m_MotionScriptMgr.LoadAndCacheScript(array[0]);
  99. this.m_MotionScriptMgr.LoadMotionCacheKag(array[0]);
  100. }
  101. }
  102. }
  103. this.BgAndMotion(this.m_lstBgInfo[0]);
  104. GameMain.Instance.MainCamera.FadeIn(1f, false, new CameraMain.dgOnCompleteFade(this.OnCompleteFadeIn), true, true, default(Color));
  105. yield break;
  106. }
  107. private void OnCompleteFadeIn()
  108. {
  109. }
  110. private List<SceneVRTouch.BGInfo> ReadBGList()
  111. {
  112. List<SceneVRTouch.BGInfo> list = new List<SceneVRTouch.BGInfo>();
  113. string text = "vr_touch_bg.nei";
  114. NDebug.Assert(GameUty.FileSystem.IsExistentFile(text), "背景リストファイルが読み取れません。");
  115. using (AFileBase afileBase = GameUty.FileSystem.FileOpen(text))
  116. {
  117. using (CsvParser csvParser = new CsvParser())
  118. {
  119. bool condition = csvParser.Open(afileBase);
  120. NDebug.Assert(condition, text + "\nopen failed.");
  121. for (int i = 1; i < csvParser.max_cell_y; i++)
  122. {
  123. if (csvParser.IsCellToExistData(0, i))
  124. {
  125. SceneVRTouch.BGInfo bginfo = new SceneVRTouch.BGInfo();
  126. bginfo.nID = csvParser.GetCellAsInteger(0, i);
  127. bginfo.strThumbFileName = csvParser.GetCellAsString(1, i);
  128. bginfo.strName = csvParser.GetCellAsString(2, i);
  129. bginfo.strScriptTagFT = csvParser.GetCellAsString(3, i);
  130. bginfo.strFileName = csvParser.GetCellAsString(4, i);
  131. bginfo.strBGM = csvParser.GetCellAsString(5, i);
  132. bginfo.strCondition = csvParser.GetCellAsString(6, i);
  133. if (!string.IsNullOrEmpty(bginfo.strCondition))
  134. {
  135. YotogiStage.Data data = YotogiStage.GetData(bginfo.strCondition);
  136. if (data.isYotogiPlayable(GameMain.Instance.CharacterMgr.status.clubGrade, true))
  137. {
  138. goto IL_21A;
  139. }
  140. }
  141. string cellAsString = csvParser.GetCellAsString(7, i);
  142. string[] array = cellAsString.Split(new char[]
  143. {
  144. ' ',
  145. ',',
  146. 'f'
  147. }, StringSplitOptions.RemoveEmptyEntries);
  148. bginfo.vPos = new Vector3(float.Parse(array[0]), float.Parse(array[1]), float.Parse(array[2]));
  149. string text2 = csvParser.GetCellAsString(8, i);
  150. text2 = text2.Trim(new char[]
  151. {
  152. ' ',
  153. 'f'
  154. });
  155. bginfo.fRot = float.Parse(text2);
  156. bginfo.strValidPack = csvParser.GetCellAsString(9, i);
  157. if (!string.IsNullOrEmpty(bginfo.strThumbFileName))
  158. {
  159. bginfo.texThumb = ImportCM.CreateTexture(bginfo.strThumbFileName + ".tex");
  160. }
  161. else
  162. {
  163. Debug.LogWarning("BGボタンテクスチャの指定がありません。" + bginfo.strName);
  164. bginfo.texThumb = Resources.Load<Texture2D>("System/Texture/unsupported");
  165. }
  166. list.Add(bginfo);
  167. }
  168. IL_21A:;
  169. }
  170. }
  171. }
  172. return list;
  173. }
  174. private Dictionary<VRTouchMgr.ETouchPos, SceneVRTouch.TouchVoiceScript> ReadVoiceList()
  175. {
  176. Dictionary<VRTouchMgr.ETouchPos, SceneVRTouch.TouchVoiceScript> dictionary = new Dictionary<VRTouchMgr.ETouchPos, SceneVRTouch.TouchVoiceScript>();
  177. string text = "vr_touch_voice.nei";
  178. NDebug.Assert(GameUty.FileSystem.IsExistentFile(text), "背景リストファイルが読み取れません。");
  179. ScriptManager scriptMgr = GameMain.Instance.ScriptMgr;
  180. this.m_kag = new VRTouchKagManager(this, scriptMgr.tjs, scriptMgr);
  181. this.m_kag.enabled = true;
  182. this.m_kag.Initialize();
  183. using (AFileBase afileBase = GameUty.FileSystem.FileOpen(text))
  184. {
  185. using (CsvParser csvParser = new CsvParser())
  186. {
  187. bool condition = csvParser.Open(afileBase);
  188. NDebug.Assert(condition, text + "\nopen failed.");
  189. for (int i = 1; i < csvParser.max_cell_y; i++)
  190. {
  191. if (csvParser.IsCellToExistData(0, i))
  192. {
  193. string cellAsString = csvParser.GetCellAsString(0, i);
  194. VRTouchMgr.ETouchPos key = VRTouchMgr.ETouchPos.無し;
  195. try
  196. {
  197. key = (VRTouchMgr.ETouchPos)Enum.Parse(typeof(VRTouchMgr.ETouchPos), cellAsString);
  198. }
  199. catch
  200. {
  201. NDebug.Assert("このタッチ部位は未定義です。" + cellAsString, false);
  202. }
  203. SceneVRTouch.TouchVoiceScript touchVoiceScript;
  204. if (!dictionary.TryGetValue(key, out touchVoiceScript))
  205. {
  206. touchVoiceScript = new SceneVRTouch.TouchVoiceScript();
  207. dictionary.Add(key, touchVoiceScript);
  208. }
  209. string cellAsString2 = csvParser.GetCellAsString(1, i);
  210. VRTouchMgr.ETouchBehavior key2 = VRTouchMgr.ETouchBehavior.無し;
  211. try
  212. {
  213. key2 = (VRTouchMgr.ETouchBehavior)Enum.Parse(typeof(VRTouchMgr.ETouchBehavior), cellAsString2);
  214. }
  215. catch
  216. {
  217. NDebug.Assert("この行動は未定義です。" + cellAsString2, false);
  218. }
  219. SceneVRTouch.TouchVoiceScript.TouchBehavior touchBehavior;
  220. if (!touchVoiceScript.m_listBeh.TryGetValue(key2, out touchBehavior))
  221. {
  222. touchBehavior = new SceneVRTouch.TouchVoiceScript.TouchBehavior();
  223. touchVoiceScript.m_listBeh.Add(key2, touchBehavior);
  224. }
  225. int num = csvParser.GetCellAsInteger(2, i) - 1;
  226. SceneVRTouch.TouchVoiceScript.TouchOrder touchOrder;
  227. if (!touchBehavior.m_dicOrderNo.TryGetValue(num, out touchOrder))
  228. {
  229. touchOrder = new SceneVRTouch.TouchVoiceScript.TouchOrder();
  230. touchBehavior.m_dicOrderNo.Add(num, touchOrder);
  231. if (touchBehavior.nOrderNoMax < num)
  232. {
  233. touchBehavior.nOrderNoMax = num;
  234. }
  235. }
  236. touchOrder.m_nLimit = csvParser.GetCellAsInteger(3, i);
  237. touchOrder.m_nTime = csvParser.GetCellAsInteger(4, i);
  238. string text2 = csvParser.GetCellAsString(5, i);
  239. if (string.IsNullOrEmpty(text2))
  240. {
  241. foreach (string str in this.m_strConditionNameTbl)
  242. {
  243. text2 = text2 + str + "|";
  244. }
  245. }
  246. int num2 = 0;
  247. int num3 = 0;
  248. string text3 = csvParser.GetCellAsString(6, i);
  249. if (string.IsNullOrEmpty(text3))
  250. {
  251. text3 = "A^M";
  252. }
  253. string[] array = text3.Split(new char[]
  254. {
  255. '^'
  256. });
  257. num2 = (int)(array[0][0] - 'A');
  258. num3 = (int)(array[1][0] - 'A');
  259. int num4 = 0;
  260. int num5 = 999;
  261. string text4 = csvParser.GetCellAsString(7, i);
  262. if (string.IsNullOrEmpty(text4))
  263. {
  264. text4 = "0^999";
  265. }
  266. string[] array2 = text4.Split(new char[]
  267. {
  268. '^'
  269. });
  270. num4 = int.Parse(array2[0]);
  271. num5 = int.Parse(array2[1]);
  272. string cellAsString3 = csvParser.GetCellAsString(8, i);
  273. string cellAsString4 = csvParser.GetCellAsString(9, i);
  274. string cellAsString5 = csvParser.GetCellAsString(10, i);
  275. string[] array3 = text2.Split(new char[]
  276. {
  277. '|'
  278. });
  279. foreach (string text5 in array3)
  280. {
  281. if (!string.IsNullOrEmpty(text5) && !(text5 == "無し"))
  282. {
  283. Relation relation = (Relation)Array.IndexOf<string>(this.m_strConditionNameTbl, text5);
  284. SceneVRTouch.TouchVoiceScript.TouchCondition touchCondition;
  285. if (!touchOrder.m_dicCondition.TryGetValue(relation, out touchCondition))
  286. {
  287. touchCondition = new SceneVRTouch.TouchVoiceScript.TouchCondition();
  288. touchCondition.eRelation = relation;
  289. touchOrder.m_dicCondition.Add(relation, touchCondition);
  290. }
  291. SceneVRTouch.TouchVoiceScript.Cup cup = touchCondition.FindCupRange(num2, num3);
  292. if (cup == null)
  293. {
  294. cup = new SceneVRTouch.TouchVoiceScript.Cup();
  295. cup.nCupLower = num2;
  296. cup.nCupUpper = num3;
  297. touchCondition.m_listCup.Add(cup);
  298. }
  299. SceneVRTouch.TouchVoiceScript.Waist waist = cup.FindWaistRange(num4, num5);
  300. if (waist == null)
  301. {
  302. waist = new SceneVRTouch.TouchVoiceScript.Waist();
  303. waist.nWaistLower = num4;
  304. waist.nWaistUpper = num5;
  305. cup.m_listWaist.Add(waist);
  306. }
  307. waist.strScriptFirst = cellAsString3;
  308. waist.strScriptBreath = cellAsString4;
  309. waist.strScriptAfter = cellAsString5;
  310. Dictionary<int, SceneVRTouch.RandVoiceList> randVoiceListFirst = this.ScriptRead(cellAsString3);
  311. Dictionary<int, SceneVRTouch.RandVoiceList> randVoiceListBreath = this.ScriptRead(cellAsString4);
  312. Dictionary<int, SceneVRTouch.RandVoiceList> randVoiceListAfter = this.ScriptRead(cellAsString5);
  313. waist.SetRandVoiceListFirst(randVoiceListFirst);
  314. waist.SetRandVoiceListBreath(randVoiceListBreath);
  315. waist.SetRandVoiceListAfter(randVoiceListAfter);
  316. }
  317. }
  318. }
  319. }
  320. }
  321. }
  322. if (this.m_kag != null)
  323. {
  324. this.m_kag.Dispose();
  325. this.m_kag = null;
  326. }
  327. return dictionary;
  328. }
  329. private Dictionary<int, SceneVRTouch.RandVoiceList> ScriptRead(string f_strScriptFileName)
  330. {
  331. Dictionary<int, SceneVRTouch.RandVoiceList> dicSet = new Dictionary<int, SceneVRTouch.RandVoiceList>();
  332. if (string.IsNullOrEmpty(f_strScriptFileName))
  333. {
  334. return null;
  335. }
  336. this.m_kag.SetShuffleDg(delegate(int f_nKouhun, string f_strVoiceFileName, string f_strFace, string f_strFaceBlend)
  337. {
  338. SceneVRTouch.RandVoiceList randVoiceList = null;
  339. if (!dicSet.TryGetValue(f_nKouhun, out randVoiceList))
  340. {
  341. randVoiceList = new SceneVRTouch.RandVoiceList();
  342. dicSet.Add(f_nKouhun, randVoiceList);
  343. }
  344. randVoiceList.AddSet(f_strVoiceFileName, f_strFace, f_strFaceBlend);
  345. });
  346. this.m_kag.LoadScriptFile(ScriptManager.ReplacePersonal(this.m_maid, f_strScriptFileName) + ".ks", string.Empty);
  347. this.m_kag.Exec();
  348. return dicSet;
  349. }
  350. private List<SceneVRTouch.TouchMotionScript> ReadMotionList()
  351. {
  352. List<SceneVRTouch.TouchMotionScript> list = new List<SceneVRTouch.TouchMotionScript>();
  353. string text = "vr_touch_motion.nei";
  354. NDebug.Assert(GameUty.FileSystem.IsExistentFile(text), "モーションリストファイルが読み取れません。");
  355. using (AFileBase afileBase = GameUty.FileSystem.FileOpen(text))
  356. {
  357. using (CsvParser csvParser = new CsvParser())
  358. {
  359. bool condition = csvParser.Open(afileBase);
  360. NDebug.Assert(condition, text + "\nopen failed.");
  361. for (int i = 1; i < csvParser.max_cell_y; i++)
  362. {
  363. if (csvParser.IsCellToExistData(0, i))
  364. {
  365. SceneVRTouch.TouchMotionScript touchMotionScript = new SceneVRTouch.TouchMotionScript();
  366. touchMotionScript.m_nId = csvParser.GetCellAsInteger(0, i);
  367. touchMotionScript.m_strThumb = csvParser.GetCellAsString(1, i);
  368. touchMotionScript.m_strFTScript = csvParser.GetCellAsString(2, i);
  369. if (!string.IsNullOrEmpty(touchMotionScript.m_strFTScript))
  370. {
  371. touchMotionScript.m_strFTScript = ScriptManager.ReplacePersonal(this.m_maid, touchMotionScript.m_strFTScript) + ".ks";
  372. }
  373. touchMotionScript.m_strNeutralScript = csvParser.GetCellAsString(3, i);
  374. for (int j = 4; j < csvParser.max_cell_x; j++)
  375. {
  376. string cellAsString = csvParser.GetCellAsString(j, 0);
  377. string[] array = cellAsString.Split(new char[]
  378. {
  379. '_'
  380. });
  381. VRTouchMgr.ETouchPos f_pos = VRTouchMgr.ETouchPos.無し;
  382. try
  383. {
  384. f_pos = (VRTouchMgr.ETouchPos)Enum.Parse(typeof(VRTouchMgr.ETouchPos), array[0]);
  385. }
  386. catch
  387. {
  388. NDebug.Assert("この部位は未定義です。" + array[0], false);
  389. }
  390. VRTouchMgr.ETouchBehavior f_beh = VRTouchMgr.ETouchBehavior.無し;
  391. try
  392. {
  393. f_beh = (VRTouchMgr.ETouchBehavior)Enum.Parse(typeof(VRTouchMgr.ETouchBehavior), array[1]);
  394. }
  395. catch
  396. {
  397. NDebug.Assert("この行動は未定義です。" + array[1], false);
  398. }
  399. string cellAsString2 = csvParser.GetCellAsString(j, i);
  400. touchMotionScript.AddScript(f_pos, f_beh, cellAsString2);
  401. }
  402. if (!string.IsNullOrEmpty(touchMotionScript.m_strThumb))
  403. {
  404. touchMotionScript.m_texThumb = ImportCM.CreateTexture(touchMotionScript.m_strThumb + ".tex");
  405. }
  406. else
  407. {
  408. Debug.LogWarning("モーションボタンテクスチャの指定がありません。" + touchMotionScript.m_nId);
  409. touchMotionScript.m_texThumb = Resources.Load<Texture2D>("System/Texture/unsupported");
  410. }
  411. list.Add(touchMotionScript);
  412. }
  413. }
  414. }
  415. }
  416. return list;
  417. }
  418. public void Bg(SceneEdit.PVBInfo f_pvb)
  419. {
  420. SceneVRTouch.ButtonBG buttonBG = f_pvb as SceneVRTouch.ButtonBG;
  421. this.BgAndMotion(buttonBG.m_bg);
  422. }
  423. private void BgAndMotion(SceneVRTouch.BGInfo f_bi)
  424. {
  425. this.m_BGInfoNow = f_bi;
  426. GameMain.Instance.BgMgr.ChangeBg(f_bi.strFileName);
  427. GameMain.Instance.BgMgr.SetPos(f_bi.vPos);
  428. GameMain.Instance.BgMgr.SetRot(new Vector3(0f, f_bi.fRot, 0f));
  429. GameMain.Instance.SoundMgr.PlayBGM(f_bi.strBGM + ".ogg", 1f, true);
  430. this.Motion((this.m_MotionScriptNow != null) ? this.m_MotionScriptNow : this.m_listTouchMotionScript[0]);
  431. }
  432. public void Pose(SceneEdit.PVBInfo f_pvb)
  433. {
  434. SceneVRTouch.ButtonPose buttonPose = f_pvb as SceneVRTouch.ButtonPose;
  435. this.Motion(buttonPose.m_motion);
  436. }
  437. private void Motion(SceneVRTouch.TouchMotionScript f_motion)
  438. {
  439. this.m_MotionScriptNow = f_motion;
  440. if (!string.IsNullOrEmpty(f_motion.m_strFTScript) && !string.IsNullOrEmpty(this.m_BGInfoNow.strScriptTagFT))
  441. {
  442. GameMain.Instance.ScriptMgr.EvalScript("global.__vrtouch_first_file = '" + f_motion.m_strFTScript + "';");
  443. GameMain.Instance.ScriptMgr.EvalScript("global.__vrtouch_first_tag = '*" + this.m_BGInfoNow.strScriptTagFT + "';");
  444. GameMain.Instance.ScriptMgr.adv_kag.JumpLabel(this.m_strScriptArgLabelFT);
  445. GameMain.Instance.ScriptMgr.adv_kag.Exec();
  446. }
  447. else
  448. {
  449. Debug.LogWarning("モーションFTの指定がありませんでした。ID:" + f_motion.m_nId);
  450. }
  451. this.PlayMotionScript(f_motion.GetScriptNeutral());
  452. }
  453. private void PlayMotionScript(string f_strFileLabelName)
  454. {
  455. float realtimeSinceStartup = Time.realtimeSinceStartup;
  456. string[] array = f_strFileLabelName.Split(new char[]
  457. {
  458. '*'
  459. });
  460. this.m_MotionScriptMgr.LoadAndCacheScript(array[0]);
  461. this.m_MotionScriptMgr.StartMotionScript(array[0], "*" + array[1], 0, null);
  462. Debug.Log("PlayMotionScript time=" + (Time.realtimeSinceStartup - realtimeSinceStartup).ToString("F6"));
  463. }
  464. public void ClothesState(SceneEditInfo.ClothesState f_cs)
  465. {
  466. Maid maid = this.m_maid;
  467. if (f_cs == SceneEditInfo.ClothesState.Nude)
  468. {
  469. maid.body0.SetMaskMode(TBody.MaskMode.Nude);
  470. }
  471. else if (f_cs == SceneEditInfo.ClothesState.Underwear)
  472. {
  473. maid.body0.SetMaskMode(TBody.MaskMode.Underwear);
  474. }
  475. if (f_cs == SceneEditInfo.ClothesState.Wear)
  476. {
  477. maid.body0.SetMaskMode(TBody.MaskMode.None);
  478. }
  479. }
  480. private IEnumerator CoVoicePlayFirstAndBreath(SceneVRTouch.TouchVoiceScript.TouchOrder f_order, bool f_bFirstPlay, bool f_bForceFirstPlay)
  481. {
  482. this.m_bVoiceAfter = false;
  483. this.m_bSkippedPlayFirst = true;
  484. SceneVRTouch.TouchVoiceScript.TouchCondition cond = f_order.GetTouchCondition(this.m_maid);
  485. SceneVRTouch.TouchVoiceScript.Cup cup = cond.GetCup(this.m_maid);
  486. SceneVRTouch.TouchVoiceScript.Waist waist = cup.GetWaist(this.m_maid);
  487. int nKouhun = Math.Min((int)this.m_fKouhunNow, f_order.m_nLimit);
  488. SceneVRTouch.RandVoiceList randFirst = waist.GetRandVoiceListFirst(nKouhun);
  489. SceneVRTouch.RandVoiceList randBreath = waist.GetRandVoiceListBreath(nKouhun);
  490. SceneVRTouch.RandVoiceList randAfter = waist.GetRandVoiceListAfter(nKouhun);
  491. SceneVRTouch.RandVoiceList.Set setFirst = randFirst.GetVoiceFace();
  492. if (f_bFirstPlay && (f_bForceFirstPlay || !this.m_bNowPlayFirst))
  493. {
  494. if (this.m_maid.AudioMan.isPlay())
  495. {
  496. this.m_maid.AudioMan.Stop();
  497. }
  498. this.m_bNowPlayFirst = true;
  499. this.m_bSkippedPlayFirst = false;
  500. this.m_maid.AudioMan.LoadPlay(setFirst.m_strVoiceFileName, 0f, false, false);
  501. this.m_maid.FaceAnime(setFirst.m_strFace, 1f, 0);
  502. this.m_maid.FaceBlend((!string.IsNullOrEmpty(setFirst.m_strFaceBlend)) ? setFirst.m_strFaceBlend : "無し");
  503. }
  504. while (this.m_bNowPlayFirst)
  505. {
  506. if (!this.m_maid.AudioMan.isPlay())
  507. {
  508. this.m_bNowPlayFirst = false;
  509. break;
  510. }
  511. yield return null;
  512. }
  513. while (!this.m_bVoiceAfter)
  514. {
  515. SceneVRTouch.RandVoiceList.Set set = randBreath.GetVoiceFace();
  516. this.m_maid.AudioMan.LoadPlay(set.m_strVoiceFileName, 0f, false, false);
  517. this.m_maid.FaceAnime(set.m_strFace, 1f, 0);
  518. this.m_maid.FaceBlend((!string.IsNullOrEmpty(set.m_strFaceBlend)) ? set.m_strFaceBlend : "無し");
  519. while (this.m_maid.AudioMan.isPlay())
  520. {
  521. yield return null;
  522. }
  523. }
  524. for (;;)
  525. {
  526. SceneVRTouch.RandVoiceList.Set set2 = randAfter.GetVoiceFace();
  527. this.m_maid.AudioMan.LoadPlay(set2.m_strVoiceFileName, 0f, false, false);
  528. this.m_maid.FaceAnime(set2.m_strFace, 1f, 0);
  529. this.m_maid.FaceBlend((!string.IsNullOrEmpty(set2.m_strFaceBlend)) ? set2.m_strFaceBlend : "無し");
  530. while (this.m_maid.AudioMan.isPlay())
  531. {
  532. yield return null;
  533. }
  534. }
  535. yield break;
  536. }
  537. private void PlayVoice_First(SceneVRTouch.TouchVoiceScript.TouchOrder f_order, bool f_bFirstPlay, bool f_bForceFirstPlay)
  538. {
  539. float realtimeSinceStartup = Time.realtimeSinceStartup;
  540. if (this.m_coVoicePlayBraeth != null)
  541. {
  542. base.StopCoroutine(this.m_coVoicePlayBraeth);
  543. }
  544. this.m_coVoicePlayBraeth = base.StartCoroutine(this.CoVoicePlayFirstAndBreath(f_order, f_bFirstPlay, f_bForceFirstPlay));
  545. }
  546. private void PlayVoice_After()
  547. {
  548. this.m_bVoiceAfter = true;
  549. }
  550. private void OnButtonEndClick()
  551. {
  552. GameMain.Instance.MainCamera.FadeOut(1f, false, new CameraMain.dgOnCompleteFade(this.OnCompleteFadeOut), true, default(Color));
  553. }
  554. private void OnCompleteFadeOut()
  555. {
  556. if (!string.IsNullOrEmpty(this.m_strScriptArgLabelEnd))
  557. {
  558. Debug.Log("OnEndScene JumpTo " + this.m_strScriptArgLabelEnd);
  559. GameMain.Instance.ScriptMgr.adv_kag.JumpLabel(this.m_strScriptArgLabelEnd);
  560. GameMain.Instance.ScriptMgr.adv_kag.Exec();
  561. }
  562. }
  563. private void Update()
  564. {
  565. this.m_TouchMgr.FrameStart();
  566. bool flag = false;
  567. VRTouchMgr.EHand eTouchHandNow = VRTouchMgr.EHand.Non;
  568. VRTouchMgr.ETouchPos etouchPos = VRTouchMgr.ETouchPos.無し;
  569. VRTouchMgr.ETouchBehavior eTouchBehNow = VRTouchMgr.ETouchBehavior.無し;
  570. bool flag2 = false;
  571. float realtimeSinceStartup = Time.realtimeSinceStartup;
  572. foreach (KeyValuePair<VRTouchMgr.ETouchPos, SceneVRTouch.TouchVoiceScript> keyValuePair in this.m_dicTouchVoiceScript)
  573. {
  574. for (int i = 0; i <= 1; i++)
  575. {
  576. for (int j = 1; j <= 2; j++)
  577. {
  578. SceneVRTouch.TouchVoiceScript.TouchBehavior touchBehavior;
  579. if (this.m_TouchMgr.GetBehaviorTouchDown((VRTouchMgr.EHand)i, keyValuePair.Key, (VRTouchMgr.ETouchBehavior)j, 0) && keyValuePair.Value.m_listBeh.TryGetValue((VRTouchMgr.ETouchBehavior)j, out touchBehavior))
  580. {
  581. if (this.m_eTouchPosNow == VRTouchMgr.ETouchPos.無し || (this.m_eTouchHandNow == (VRTouchMgr.EHand)i && this.m_eTouchPosNow == keyValuePair.Key && this.m_eTouchBehNow != (VRTouchMgr.ETouchBehavior)j))
  582. {
  583. this.m_nOrderNoNow = 0;
  584. flag = true;
  585. bool f_bFirstPlay = true;
  586. bool f_bForceFirstPlay = false;
  587. if (this.m_eTouchBehNow == VRTouchMgr.ETouchBehavior.掴む && j == 1)
  588. {
  589. f_bFirstPlay = false;
  590. }
  591. if (this.m_eTouchBehNow == VRTouchMgr.ETouchBehavior.触る && j == 2)
  592. {
  593. f_bForceFirstPlay = true;
  594. }
  595. if (this.m_eTouchBehNow == VRTouchMgr.ETouchBehavior.無し && j == 2)
  596. {
  597. f_bForceFirstPlay = true;
  598. }
  599. eTouchHandNow = (this.m_eTouchHandNow = (VRTouchMgr.EHand)i);
  600. etouchPos = (this.m_eTouchPosNow = keyValuePair.Key);
  601. eTouchBehNow = (this.m_eTouchBehNow = (VRTouchMgr.ETouchBehavior)j);
  602. this.PlayVoice_First(touchBehavior.m_dicOrderNo[this.m_nOrderNoNow], f_bFirstPlay, f_bForceFirstPlay);
  603. this.PlayMotionScript(this.m_MotionScriptNow.GetScript(this.m_eTouchPosNow, this.m_eTouchBehNow));
  604. }
  605. flag2 = true;
  606. break;
  607. }
  608. }
  609. if (flag2)
  610. {
  611. break;
  612. }
  613. }
  614. if (flag2)
  615. {
  616. break;
  617. }
  618. }
  619. SceneVRTouch.TouchVoiceScript.TouchBehavior touchBehavior2;
  620. if (this.m_eTouchPosNow != VRTouchMgr.ETouchPos.無し && this.m_TouchMgr.GetBehaviorTouchOrGrab(this.m_eTouchHandNow, this.m_eTouchPosNow, 0) && this.m_dicTouchVoiceScript[this.m_eTouchPosNow].m_listBeh.TryGetValue(this.m_eTouchBehNow, out touchBehavior2))
  621. {
  622. int num = (int)this.m_fKouhunNow;
  623. SceneVRTouch.TouchVoiceScript.TouchOrder touchOrder = null;
  624. try
  625. {
  626. touchOrder = touchBehavior2.m_dicOrderNo[this.m_nOrderNoNow];
  627. }
  628. catch
  629. {
  630. Debug.LogError(string.Concat(new object[]
  631. {
  632. "発生順オーバー:",
  633. this.m_nOrderNoNow,
  634. "/",
  635. touchBehavior2.nOrderNoMax,
  636. ":",
  637. this.m_eTouchPosNow,
  638. ":",
  639. this.m_eTouchBehNow
  640. }));
  641. }
  642. if (this.m_fKouhunNow <= (float)touchOrder.m_nLimit)
  643. {
  644. this.m_fKouhunNow += Time.deltaTime / (float)touchOrder.m_nTime;
  645. if ((float)touchOrder.m_nLimit < this.m_fKouhunNow)
  646. {
  647. this.m_fKouhunNow = (float)touchOrder.m_nLimit;
  648. }
  649. flag = true;
  650. }
  651. if (num < (int)this.m_fKouhunNow)
  652. {
  653. this.m_nOrderNoNow++;
  654. if (touchBehavior2.nOrderNoMax < this.m_nOrderNoNow)
  655. {
  656. this.m_nOrderNoNow = touchBehavior2.nOrderNoMax;
  657. }
  658. Debug.Log("興奮度UP:" + this.m_nOrderNoNow);
  659. this.PlayVoice_First(touchBehavior2.m_dicOrderNo[this.m_nOrderNoNow], true, false);
  660. }
  661. eTouchHandNow = this.m_eTouchHandNow;
  662. etouchPos = this.m_eTouchPosNow;
  663. eTouchBehNow = this.m_eTouchBehNow;
  664. }
  665. SceneVRTouch.TouchVoiceScript.TouchBehavior touchBehavior3;
  666. if (!flag && this.m_dicTouchVoiceScript[VRTouchMgr.ETouchPos.無し].m_listBeh.TryGetValue(VRTouchMgr.ETouchBehavior.無し, out touchBehavior3))
  667. {
  668. this.m_fKouhunNow += Time.deltaTime / (float)touchBehavior3.m_dicOrderNo[0].m_nTime;
  669. if (this.m_fKouhunNow <= 0f)
  670. {
  671. this.m_fKouhunNow = 0f;
  672. }
  673. if (0f < this.m_fKouhunBefore && this.m_fKouhunNow <= 0f)
  674. {
  675. this.PlayVoice_First(touchBehavior3.m_dicOrderNo[0], true, false);
  676. this.PlayMotionScript(this.m_MotionScriptNow.m_strNeutralScript);
  677. }
  678. }
  679. if (etouchPos == VRTouchMgr.ETouchPos.無し)
  680. {
  681. this.PlayVoice_After();
  682. }
  683. this.m_fKouhunBefore = this.m_fKouhunNow;
  684. this.m_eTouchHandNow = eTouchHandNow;
  685. this.m_eTouchPosNow = etouchPos;
  686. this.m_eTouchBehNow = eTouchBehNow;
  687. this.m_TouchMgr.FrameEnd();
  688. if (GameMain.Instance.ScriptMgr.is_motion_all_prop_seq)
  689. {
  690. GameMain.Instance.ScriptMgr.motion_all_prop_seq_maid.AllProcPropSeqStart();
  691. GameMain.Instance.ScriptMgr.motion_all_prop_seq_maid = null;
  692. GameMain.Instance.ScriptMgr.is_motion_all_prop_seq = false;
  693. }
  694. this.m_MotionScriptMgr.Update();
  695. }
  696. private List<SceneVRTouch.BGInfo> m_lstBgInfo;
  697. private string[] m_strConditionNameTbl = new string[]
  698. {
  699. "無し",
  700. "緊張",
  701. "お近づき",
  702. "信頼",
  703. "恋人",
  704. "愛奴"
  705. };
  706. private Dictionary<VRTouchMgr.ETouchPos, SceneVRTouch.TouchVoiceScript> m_dicTouchVoiceScript;
  707. private List<SceneVRTouch.TouchMotionScript> m_listTouchMotionScript;
  708. private Maid m_maid;
  709. private Vector3 m_vCamResetTargetPos;
  710. private Vector2 m_vCamResetAngle;
  711. private float m_fCamResetDistance;
  712. private VRTouchMgr m_TouchMgr;
  713. private VRTouchKagManager m_kag;
  714. [SerializeField]
  715. private VRTouchMgr.EHand m_eTouchHandNow = VRTouchMgr.EHand.Non;
  716. [SerializeField]
  717. private VRTouchMgr.ETouchPos m_eTouchPosNow;
  718. [SerializeField]
  719. private VRTouchMgr.ETouchBehavior m_eTouchBehNow;
  720. [SerializeField]
  721. private int m_nOrderNoNow;
  722. [SerializeField]
  723. private float m_fKouhunNow;
  724. private float m_fKouhunBefore;
  725. private SceneVRTouch.BGInfo m_BGInfoNow;
  726. private SceneVRTouch.TouchMotionScript m_MotionScriptNow;
  727. private string m_strScriptArgLabelEnd;
  728. private string m_strScriptArgLabelFT;
  729. public List<SceneEdit.PVBInfo> m_listPose = new List<SceneEdit.PVBInfo>();
  730. public List<SceneEdit.PVBInfo> m_listBg = new List<SceneEdit.PVBInfo>();
  731. private UIButton m_btnEnd;
  732. private ScriptManagerFast m_MotionScriptMgr;
  733. private Coroutine m_coVoicePlayBraeth;
  734. private bool m_bVoiceAfter;
  735. private bool m_bNowPlayFirst;
  736. private bool m_bSkippedPlayFirst;
  737. public class RandVoiceList
  738. {
  739. public void AddSet(string f_strVoiceFileName, string f_strFace, string f_strFaceBlend)
  740. {
  741. this.m_listVoiceFace.Add(new SceneVRTouch.RandVoiceList.Set(f_strVoiceFileName + ".ogg", f_strFace, f_strFaceBlend));
  742. }
  743. private void Shuffle()
  744. {
  745. System.Random random = new System.Random();
  746. List<SceneVRTouch.RandVoiceList.Set> listVoiceFace = this.m_listVoiceFace;
  747. int i = listVoiceFace.Count;
  748. while (i > 1)
  749. {
  750. i--;
  751. int index = random.Next(i + 1);
  752. SceneVRTouch.RandVoiceList.Set value = listVoiceFace[index];
  753. listVoiceFace[index] = listVoiceFace[i];
  754. listVoiceFace[i] = value;
  755. }
  756. }
  757. public SceneVRTouch.RandVoiceList.Set GetVoiceFace()
  758. {
  759. if (this.m_nNow == 0)
  760. {
  761. this.Shuffle();
  762. }
  763. SceneVRTouch.RandVoiceList.Set result = this.m_listVoiceFace[this.m_nNow];
  764. if (this.m_listVoiceFace.Count <= this.m_nNow)
  765. {
  766. this.m_nNow = 0;
  767. }
  768. return result;
  769. }
  770. private List<SceneVRTouch.RandVoiceList.Set> m_listVoiceFace = new List<SceneVRTouch.RandVoiceList.Set>();
  771. private int m_nNow;
  772. public class Set
  773. {
  774. public Set(string f_strVoiceFileName, string f_strFace, string f_strFaceBlend)
  775. {
  776. this.m_strVoiceFileName = f_strVoiceFileName;
  777. this.m_strFace = f_strFace;
  778. this.m_strFaceBlend = f_strFaceBlend;
  779. }
  780. public string m_strVoiceFileName;
  781. public string m_strFace;
  782. public string m_strFaceBlend;
  783. }
  784. }
  785. private class BGInfo
  786. {
  787. public int nID;
  788. public string strThumbFileName;
  789. public string strName;
  790. public string strScriptTagFT;
  791. public string strFileName;
  792. public string strBGM;
  793. public string strCondition;
  794. public Vector3 vPos;
  795. public float fRot;
  796. public string strValidPack;
  797. public Texture2D texThumb;
  798. }
  799. private class TouchVoiceScript
  800. {
  801. public Dictionary<VRTouchMgr.ETouchBehavior, SceneVRTouch.TouchVoiceScript.TouchBehavior> m_listBeh = new Dictionary<VRTouchMgr.ETouchBehavior, SceneVRTouch.TouchVoiceScript.TouchBehavior>();
  802. public class Waist
  803. {
  804. public void SetRandVoiceListFirst(Dictionary<int, SceneVRTouch.RandVoiceList> f_dicRandVoiceList)
  805. {
  806. this.m_dicRandVoiceFirst = f_dicRandVoiceList;
  807. }
  808. public void SetRandVoiceListBreath(Dictionary<int, SceneVRTouch.RandVoiceList> f_dicRandVoiceList)
  809. {
  810. this.m_dicRandVoiceBreath = f_dicRandVoiceList;
  811. }
  812. public void SetRandVoiceListAfter(Dictionary<int, SceneVRTouch.RandVoiceList> f_dicRandVoiceList)
  813. {
  814. this.m_dicRandVoiceAfter = f_dicRandVoiceList;
  815. }
  816. public SceneVRTouch.RandVoiceList GetRandVoiceListFirst(int f_nKouhun)
  817. {
  818. return this.m_dicRandVoiceFirst[f_nKouhun];
  819. }
  820. public SceneVRTouch.RandVoiceList GetRandVoiceListBreath(int f_nKouhun)
  821. {
  822. return this.m_dicRandVoiceBreath[f_nKouhun];
  823. }
  824. public SceneVRTouch.RandVoiceList GetRandVoiceListAfter(int f_nKouhun)
  825. {
  826. return this.m_dicRandVoiceAfter[f_nKouhun];
  827. }
  828. public int nWaistLower;
  829. public int nWaistUpper = 999;
  830. public string strScriptFirst;
  831. public string strScriptBreath;
  832. public string strScriptAfter;
  833. private Dictionary<int, SceneVRTouch.RandVoiceList> m_dicRandVoiceFirst = new Dictionary<int, SceneVRTouch.RandVoiceList>();
  834. private Dictionary<int, SceneVRTouch.RandVoiceList> m_dicRandVoiceBreath = new Dictionary<int, SceneVRTouch.RandVoiceList>();
  835. private Dictionary<int, SceneVRTouch.RandVoiceList> m_dicRandVoiceAfter = new Dictionary<int, SceneVRTouch.RandVoiceList>();
  836. }
  837. public class Cup
  838. {
  839. public SceneVRTouch.TouchVoiceScript.Waist FindWaistRange(int nMin, int nMax)
  840. {
  841. return this.m_listWaist.Find((SceneVRTouch.TouchVoiceScript.Waist a) => a.nWaistLower == nMin && a.nWaistUpper == nMax);
  842. }
  843. public SceneVRTouch.TouchVoiceScript.Waist FindWaistValue(int nValue)
  844. {
  845. return this.m_listWaist.Find((SceneVRTouch.TouchVoiceScript.Waist a) => a.nWaistLower <= nValue && nValue <= a.nWaistUpper);
  846. }
  847. public SceneVRTouch.TouchVoiceScript.Waist GetWaist(Maid f_maid)
  848. {
  849. SceneVRTouch.TouchVoiceScript.Waist waist = this.FindWaistValue(f_maid.status.body.waist);
  850. NDebug.Assert(waist != null, "ウェスト条件に合うボイススクリプトがありません。");
  851. return waist;
  852. }
  853. public int nCupLower;
  854. public int nCupUpper = 9;
  855. public List<SceneVRTouch.TouchVoiceScript.Waist> m_listWaist = new List<SceneVRTouch.TouchVoiceScript.Waist>();
  856. }
  857. public class TouchCondition
  858. {
  859. public SceneVRTouch.TouchVoiceScript.Cup FindCupRange(int nMin, int nMax)
  860. {
  861. return this.m_listCup.Find((SceneVRTouch.TouchVoiceScript.Cup a) => a.nCupLower == nMin && a.nCupUpper == nMax);
  862. }
  863. public SceneVRTouch.TouchVoiceScript.Cup FindCupValue(int nValue)
  864. {
  865. return this.m_listCup.Find((SceneVRTouch.TouchVoiceScript.Cup a) => a.nCupLower <= nValue && nValue <= a.nCupUpper);
  866. }
  867. public SceneVRTouch.TouchVoiceScript.Cup GetCup(Maid f_maid)
  868. {
  869. SceneVRTouch.TouchVoiceScript.Cup cup = this.FindCupValue((int)(f_maid.status.body.cup[0] - 'A'));
  870. NDebug.Assert(cup != null, "カップ条件に合うボイススクリプトがありません。");
  871. return cup;
  872. }
  873. public Relation eRelation;
  874. public List<SceneVRTouch.TouchVoiceScript.Cup> m_listCup = new List<SceneVRTouch.TouchVoiceScript.Cup>();
  875. }
  876. public class TouchOrder
  877. {
  878. public SceneVRTouch.TouchVoiceScript.TouchCondition GetTouchCondition(Maid f_maid)
  879. {
  880. return this.m_dicCondition[f_maid.status.relation];
  881. }
  882. public int m_nLimit;
  883. public int m_nTime;
  884. public Dictionary<Relation, SceneVRTouch.TouchVoiceScript.TouchCondition> m_dicCondition = new Dictionary<Relation, SceneVRTouch.TouchVoiceScript.TouchCondition>();
  885. }
  886. public class TouchBehavior
  887. {
  888. public int nOrderNoMax;
  889. public Dictionary<int, SceneVRTouch.TouchVoiceScript.TouchOrder> m_dicOrderNo = new Dictionary<int, SceneVRTouch.TouchVoiceScript.TouchOrder>();
  890. }
  891. }
  892. private class TouchMotionScript
  893. {
  894. public void AddScript(VRTouchMgr.ETouchPos f_pos, VRTouchMgr.ETouchBehavior f_beh, string f_strScript)
  895. {
  896. Dictionary<VRTouchMgr.ETouchBehavior, string> dictionary;
  897. if (!this.m_dicTouchScript.TryGetValue(f_pos, out dictionary))
  898. {
  899. dictionary = new Dictionary<VRTouchMgr.ETouchBehavior, string>();
  900. this.m_dicTouchScript.Add(f_pos, dictionary);
  901. }
  902. dictionary.Add(f_beh, f_strScript);
  903. }
  904. public string GetScript(VRTouchMgr.ETouchPos f_pos, VRTouchMgr.ETouchBehavior f_beh)
  905. {
  906. return this.m_dicTouchScript[f_pos][f_beh];
  907. }
  908. public string GetScriptNeutral()
  909. {
  910. return this.m_strNeutralScript;
  911. }
  912. public int m_nId;
  913. public string m_strThumb;
  914. public string m_strFTScript;
  915. public string m_strNeutralScript;
  916. public Texture2D m_texThumb;
  917. public Dictionary<VRTouchMgr.ETouchPos, Dictionary<VRTouchMgr.ETouchBehavior, string>> m_dicTouchScript = new Dictionary<VRTouchMgr.ETouchPos, Dictionary<VRTouchMgr.ETouchBehavior, string>>();
  918. }
  919. private class ButtonPose : SceneEdit.PVBInfo
  920. {
  921. public SceneVRTouch.TouchMotionScript m_motion;
  922. }
  923. private class ButtonBG : SceneEdit.PVBInfo
  924. {
  925. public SceneVRTouch.BGInfo m_bg;
  926. }
  927. }