Advertisement
Guest User

Untitled

a guest
Jun 5th, 2018
1,341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.76 KB | None | 0 0
  1.  
  2. GameObjectの一覧を表示するIllusion Plugin Architecture用Pluginです(ハニーセレクト用)
  3.  
  4. ゲーム内のオブジェクトを一覧表示してその中の変数を書き換えたり
  5. 書き換えた値をマクロとして記録し再実行したり出来ます
  6.  
  7. ゲーム開発エンジンのUnityを触った事がある人向けのMODです
  8.  
  9. 注意
  10. 本MODを適用した状態のハニーセレクトで作成したキャラやシーン、スクリーンショット等は
  11. 絶対に公式アップローダーにアップロードしないでください
  12.  
  13. ------------------------------------------------------------------------------------------
  14. 【 インストール 】
  15.  
  16. Illusion Plugin Architectureが導入されている事を前提としています
  17. 展開した中のPluginsフォルダの中身をゲームフォルダのPluginsフォルダにコピーしてください
  18.  
  19. ------------------------------------------------------------------------------------------
  20. 【 プラグイン表示・非表示 】
  21.  
  22. Ctrl+Iキーで【 GameObject一覧ウィンドウ 】表示ON/OFF(golconfig.xml※1でキー変更可)
  23.  
  24. UI表示時はカメラ操作がオフになります(プラグイン操作をしやすくするため)
  25. Altキーを押すとUIが消え、押している間はカメラ操作が復活します(※2)
  26.  
  27. Ctrl+Mでマクロ一覧のウィンドウのみ表示ON/OFFされます(golconfig.xmlでキー変更可)
  28.  
  29. ESCキーで全ウィンドウ非表示(golconfig.xml※1でキー変更可)
  30.  
  31.  
  32. !!!動作が怪しくなったらCtrl+Shift+Alt+Iキーでプラグインを再起動してください!!!
  33.  
  34.  
  35. ※1…golconfig.xmlはPlugins¥GameObjectListフォルダの下に作成されます
  36. ※2…正確にはプラグインの機能ではなくプラグイン起動時に自動実行されるマクロの機能
  37.  
  38. ------------------------------------------------------------------------------------------
  39. 【 GameObject一覧ウィンドウ 】(メインウィンドウ)
  40.  
  41. 左側のリストビューにGameObject名の一覧を表示
  42. GameObject名ボタンの文字色は以下の状態を表す
  43.  青:renderer有り(画面表示のあるGameObject)
  44.  緑:子オブジェクト以降にRendererコンポーネント付加オブジェクト有り
  45.  灰:現在は存在しないオブジェクト
  46. リストの初期表示はRenderer有りまたは子がRenderer有りのルートオブジェクトのみ表示
  47. 右上の「All GameObject」でRendererの無いオブジェクトも表示します
  48.  
  49. 「Inactive Parent」トグルをチェックして「List Update」ボタンを押すと
  50. 非アクティブな親オブジェクト(及びその子オブジェクト)もリストに表示します。
  51. ※ただし非インタンスのPrefabも非アクティブなGameObjectとしてリストアップされてしまいます
  52.  
  53. GameObject名ボタンを左クリックで該当オブジェクトの表示ON/OFF(Renderer.enabled = true/false)
  54. 右クリックで該当オブジェクト以降の子を含むオブジェクト群の表示一括ON/OFF
  55. Shift+左クリックでActive切替( SetActive(ture/false) )
  56. 左ダブルクリックで【 GameObject情報ウィンドウ 】を表示
  57. Ctrl+左クリックでクリップボードにGameObject名をコピー
  58. Ctrl+Shift+左クリックでクリップボードに階層構造を含むGameObject名をコピー
  59. Shift+右クリックでGameObject削除(削除確認メッセージ有り)
  60.  
  61. 「Macro」ボタンで【 マクロ一覧ウィンドウ 】を表示します
  62.  
  63. ウィンドウタイトルをダブルクリックでウィンドウ最小化
  64.  
  65. ------------------------------------------------------------------------------------------
  66. 【 GameObject情報ウィンドウ 】(コンポーネント一覧)
  67.  
  68. ターゲットのGameObjectの位置、回転、スケールの表示
  69. 及び付与されているコンポーネント名の一覧を表示
  70.  
  71. コンポーネント名ボタンを左クリックで該当コンポーネントの【 メンバー情報ウィンドウ 】を表示
  72. Shift+クリックで有効/無効切替(enabled = true/false)
  73. Shift+右クリックでComponent削除(削除確認メッセージ有り)
  74.  
  75. Ctrl+左クリックでOSクリップボードにComponent名をコピー
  76. Ctrl+Shift+左クリックでOSクリップボードに名前空間を含むComponent名フルネームをコピー
  77. Ctrl+右クリックでプラグイン内クリップボードにコンポーネントの参照をコピー
  78.  
  79. ------------------------------------------------------------------------------------------
  80. 【 メンバー情報ウィンドウ 】(プロパティ、フィールド一覧)
  81.  
  82. ターゲットのコンポーネント(型)が所有するメンバー名(プロパティ名やフィールド名
  83. 及びメソッド名)の一覧を表示
  84.  
  85. メンバー名ボタン文字色
  86.  水色:プロパティ / 青:フィールド / 橙:メソッド
  87. ボタン右のラベルはメンバーの型情報で、先頭の[]文字は以下の情報を示します
  88.  [U]UnityEngine,[S]System,[O]その他
  89.  
  90. 一部の型についてはメンバー名ボタンを左クリックで【 値変更ウィンドウ 】を表示
  91. short,ushort,int,uint,long,ulong,byte,char,string,bool
  92. float(single),double(※floatより大きな範囲は扱えません)
  93. Vector2,Vector3,Rect,Color,Material,Texture,GameObject,Transform
  94. ※配列(リスト)要素の値変更は未対応です
  95. その他の型の場合はその型のメンバー情報表示に進みます
  96. ※上記値変更可能な型も右クリックでメンバー情報表示へ進めます
  97.  
  98. Shift+左クリックでメンバーの値(または参照)をプラグイン内のクリップボードに保存
  99. Shift+右クリックでクリップボードの内容を他のメンバーに貼り付け出来ます(型一致必須)
  100. ※コピーを実行するとメンバー情報ウィンドウの右下にクリップボード内の型が表示されます
  101.  
  102. Ctrl+左クリックでOSクリップボードにメンバー名をコピー
  103.  
  104. メソッドメンバー名ボタンを左クリックで【 メソッド実行ウィンドウ 】を表示します
  105.  
  106. ------------------------------------------------------------------------------------------
  107. 【 値変更ウィンドウ 】
  108.  
  109. 数値型はスライダーで数値を変更します。
  110.  Rangeボタン「0-1x」を押すとスライダー範囲が0〜1に変更されます
  111.  そのまま「x2」「x10」ボタンを押すと0〜2、0〜10と最大値が倍増されます
  112.  「f/r」ボタンを押すとスライダー幅はそのままで、現在値をスライダー中心とします
  113.  「f/r」ボタンを押した後「x2」「x10」ボタンを押すと前後のスライダー幅が拡大されます
  114.  倍増ボタンを右クリックすると÷2、÷10とスライダー幅が縮小されます。
  115. Material,Texture型は一部で保存、画像のロードが可能(¥Pulugins¥GameObjectList¥texture)
  116. GameObect,Transform型は参照するGameObect(Transform)をGameObject一覧から選択可能
  117.  SelectObjectボタンをクリック後、GameObject一覧ウィンドウから変更GameObjectを選択。
  118.  
  119. 右上のPinトグルONでそのウィンドウを残して別の値変更ウィンドウを新規表示出来ます
  120.  
  121. 「Add Macro」ボタンをクリックするとマクロエディタが表示されスクリプトが追加されます
  122. Shiftキーを押しながら「Add Macro(O)」ボタンをクリックすると
  123. 現在の値変更ウィンドウを開くスクリプトがマクロエディタに追加されます
  124. ※NonPublicメンバー値変更のマクロ記録には対応していません(追加されるがコンパイル通らず)
  125.  
  126. [監視モード]
  127. 左上のWatchトグルをONにする事でメンバーの現在値を表示しつづけるモードになります
  128. このモード時はスライダーでの値変更等は出来なくなります
  129.  
  130. ウィンドウタイトル部分をダブルクリックでウィンドウ最小化
  131.  
  132. ------------------------------------------------------------------------------------------
  133. 【 マクロ一覧ウィンドウ 】
  134.  
  135. Ctrl+Mキーでマクロ一覧ウィンドウを表示します(golconfig.xmlでキー変更可)
  136.  
  137. マクロ名ボタン文字色
  138. 白:マクロ(通常) / 紫:コンパイル済マクロ /水色:ソースタイプマクロ/ 灰:実行不可
  139.  
  140. 白文字・水色文字のマクロを実行するにはコンパイラの設定が必要です
  141.  
  142. mcs.exeとmono.exeのパスをgolconfig.xmlに設定する事でマクロ実行(コンパイル)可能になります
  143. Unityがインストールされているなら、golconfig.xmlのMcsMonoSearchDir項目にUnityフォルダパスを
  144. 設定してプラグインを再起動すれば指定のフォルダ以下からコンパイラを探して自動設定します
  145.  
  146. 設定例(golconfig.xml)
  147.  
  148. <McsExePath>C:¥Unity5¥Editor¥Data¥MonoBleedingEdge¥lib¥mono¥4.5¥mcs.exe</McsExePath>
  149. <MonoExePath>C:¥Unity5¥Editor¥Data¥MonoBleedingEdge¥bin¥mono.exe</MonoExePath>
  150.  
  151. または
  152.  
  153. <McsMonoSearchDir>C:¥Unity5</McsMonoSearchDir>
  154.  
  155.  
  156. マクロ名ボタンを左クリックで実行(メモリ上にコンパイルされ実行されます)
  157. コンパイルが失敗するとボタンが灰色がかった状態になりボタンが押せなくなります
  158. Reloadボタンを押すことで編集及び再実行出来るようになります
  159.  
  160. 右下の「C」ボタンをクリックするとマクロ名の右に継続実行トグルが表示されます
  161. このトグルをONにした場合、指定したマクロが継続的に連続実行されます
  162. ※例えばメンバーの値を変更してもゲームシステムからすぐ元の値に戻されてしまうような場合に
  163.  変更し続ける事が出来ます
  164.  
  165. マクロ名ボタンをShift+左クリックでマクロ編集ウィンドウを表示
  166. Shift+右クリックでマクロ削除
  167. 右クリックでコンパイル済みマクロを作成(拡張子ipc)
  168.  
  169. ※コンパイル済みマクロはコンパイラ設定をしていない環境でも実行可能です
  170.  
  171. mcs.exeの代わりにcsc.exe(v3.5/v4.5)を使う事も出来ます。
  172. mcs.exeの設定をしない場合
  173. C:¥Windows¥Microsoft.NET¥Framework64¥v3.5¥csc.exe
  174. をコンパイラとして利用します(ファイルパスの位置にcsc.exeがない場合動作しません)
  175. ただしmcs.exe使用時と違いコンソールにコンパイルエラーのメッセージが出ません
  176. golconfig.xmlのSilentExternalCompileをfalseに設定する事でエラーメッセージが見られます
  177.  
  178. ------------------------------------------------------------------------------------------
  179. 【 メソッド実行ウィンドウ 】
  180.  
  181. Executeボタンでメソッドを実行出来ます
  182.  
  183. Argument項目に並んでいる引数ボタンにメンバー情報ウィンドウからオレンジの●アイコンを
  184. ドラッグする事で引数を指定できます
  185.  
  186. 引数の型が値変更ウィンドウで変更可能な場合、引数ボタンをクリックで値変更ウィンドウを表示し
  187. 値を設定する事が出来ます
  188. 右クリックでデフォルト値、またはnullに戻ります
  189.  
  190. 「Return Copy」ボタンで戻り値をプラグイン内クリップボードにコピー出来ます
  191. ※Shiftキー押下時はテキスト情報としてOSのクリップボードにコピーします
  192.  
  193. 右上のPinトグルONでそのウィンドウを残して別のメソッド実行ウィンドウを新規表示出来ます
  194.  
  195. ウィンドウタイトル部分をダブルクリックでウィンドウ最小化
  196.  
  197. ------------------------------------------------------------------------------------------
  198. 【 その他情報 】
  199.  
  200. テスト環境:Windows10 Pro 64bit、Unity5.4.1f1 インストール
  201.  
  202. GameObjectListはIllusion Plugin Architectureが対応するUnity製ソフトで使用可能です。
  203.  
  204. 自動実行マクロに初期登録されている「CameraCtrlOff」マクロはカメラ制御オフ機能のマクロで、
  205. 本プラグイン動作時(ウィンドウ表示時)にカメラ制御をオフにし、Altキーを押している間
  206. 本プラグインGUIを非表示にしてカメラ制御をオンに戻します
  207. ※プラグイン表示中はCameraControl_Ver2、GameCursorコンポーネントを無効にします。(ハニーセレクト本編)
  208. 「[Cfg]TextColor」は本プラグイン文字色設定マクロです(※ハニーセレクトでは不使用)
  209.  
  210. ハニーセレクト以外の製品では「ハニーセレクト以外」フォルダの中の
  211. CameraCtrlOff_Unity4用.ipcまたはCameraCtrlOff_Unity5用.ipcを
  212. CameraCtrlOff.ipcに変更してMacroフォルダのそれと置き換えて使用してください。
  213. ※AltキーでGUI非表示にするだけでゲーム内カメラ制御の停止機能はありません。
  214.  
  215. マクロは上下に下記スクリプトを足してC#のソースとし、CompileAssemblyFromSourceを使用して
  216. メモリ上にコンパイルし実行している感じです
  217. ※.NET2.0 subset ビルド 製品では一時ファイル(C#ソース)を作成してmcs.exeで外部コンパイル
  218.  したアセンブリファイルをロード実行します(←セクロスフィアはこちらの動作になります)
  219.  
  220.  
  221. public class GameObjectListMacro
  222. {
  223. public static void MacroMain()
  224. {
  225. [マクロスクリプト]
  226. }
  227. }
  228.  
  229. 同名のクラスとstaticメソッドを持つC#のDLLを作成し、拡張子をipcに変更して
  230. Macroフォルダに格納すれば本プラグインのマクロ一覧から実行可能です
  231.  
  232. using UnityEngine;
  233.  
  234. public class GameObjectListMacro
  235. {
  236. public static void MacroMain()
  237. {
  238. new GameObject().AddComponent<ComponentA>();
  239. }
  240. }
  241.  
  242. public class ComponentA : MonoBehaviour
  243. {
  244. void OnGUI()
  245. {
  246. float width = 400;
  247. float height = 100;
  248. float x = (Screen.width - width) / 2;
  249. float y = (Screen.height - height) / 2;
  250.  
  251. GUI.Button(new Rect(x, y, width, height), "Hello, Illusion");
  252. }
  253. }
  254.  
  255. 2016.10.6 修正でMacroフォルダの*.csファイルをソースタイプマクロとして
  256. 実行・コンパイル出来るようになりました
  257. 上記ソースをhello.csとしてMacroフォルダに保存し
  258. マクロリストをリロードすればhelloというマクロ名が表示され実行出来ます
  259.  
  260. GUI.Window()の使用WindowIDについて
  261. 1000〜1070程度の範囲を使用想定しています
  262.  
  263. ------------------------------------------------------------------------------------------
  264. 【修正履歴】
  265. 2016.10.14 golconfig.xmlの<ReferencedAssemblies>を絶対パス指定のみからPluginsフォルダ
  266.       またはManagedフォルダからの相対パスでも指定出来るように修正
  267. 2016.10.13 csc.exeでのマクロコンパイルまたは.NET 2.0 subset ビルドのUnity製品での
  268.       マクロコンパイルでマクロファイルまでの絶対パスにスペースが含まれると
  269.       コンパイル出来なかった不具合を修正
  270. 2016.10. 8 確認メッセージウィンドウをモーダルからモードレスウィンドウに変更
  271.       ※旧ModalWindowクラスも残すが今後はMessageWindowクラスを使用する
  272.       GameObjectList.instance.isFontBold = true; で文字スタイル太字
  273.       値変更ウィンドウのサイズを型によって変更
  274.       キーコンフィグ等をPlugins¥GameObjectList¥golconfig.xmlへ(modpref.ini不使用化)
  275. 2016.10. 6 コンパイラ設定が無ければcsc.exeをコンパイラとして使用するよう変更
  276.       値変更ウィンドウに監視モード追加
  277.       GameObject一覧フィルタモード速度改善
  278.       コンポーネントボタンをCtrl+右クリックでコンポーネント参照をクリップボードへ
  279. 2016. 9.28 OnGUI()でGUIStyleを直接書き換えないよう修正
  280.       ソースタイプマクロの仕様変更、マクロフォルダに*.csがあればマクロ一覧に表示
  281. 2016. 9.22 メソッド実行ウィンドウの複数化対応、値変更ウィンドウにコピペボタン追加
  282. 2016. 9.14 ハニーセレクト製品版対応、uint,ulong,sbyte,byteの値変更追加
  283. 2016. 7.18 ハニーセレクト体験版対応、csc.exeでのマクロコンパイル対応
  284. 2016. 5. 8 .NET 2.0 subset コンパイル対応
  285. 2016. 5. 1 セクロスフィア対応、マクロ一覧表示キー追加
  286.       メソッド戻り値をクリップボードにコピーする機能追加
  287.       クリップボードからのメソッド引数へのドラッグ対応
  288.       [cfg]TextColor.ipcをマクロ自動実行に追加
  289. 2016. 3.23 デフォでは非アクティブな親オブジェクトはリストアップしないようにした
  290.       ※デフォは前仕様に戻し、非アクティブGameObject表示はオプション対応とした
  291. 2016. 3.19 Unity5製ソフト対応。親GameObjectが非アクティブなGameObjectもリストに表示
  292.       ※現状、PrefabもGameObjectとして表示されてしまう
  293. 2015.12.24 NonPublicメンバーの値変更に対応
  294. 2015.12.10 マップどこでもHや雪マクロ等サンプルマクロを付けて配布
  295. 2015.11.13 メソッド実行機能追加
  296. 2015.10.30 Sexyビーチプレミアム用のIllusion Plugin Architectureプラグインとして公開
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement