2018年8月10日金曜日

ちまちまとUnityいじり始めて 最初に思ったのは他のGameObjectにどうやってアクセスすんのって

普通に自分で全部書く時には悩まない部分
Unityを触って速攻で離れた時はブラックボックスていうか開発用のGUIしか説明がないというか全体の構成が見通せないので気味が悪かったからなんだけど。フルスクラッチで動くの作るには自分で全部ライブラリつくらんとイカンのでしんどすぎ(笑)
Unrealも触ってみたいけど一応Unityでチュートリアル以外の基本要素を昔買った本でさらっておこうと

で、触り始めると書いてあることだけやるのは全然気が進まないわけで
ちょっとだけ「あ、じゃあこれしたいけどどうしよう」ってなる
既に挫折して、もっと分かってからってブン投げたのはマテリアルの動的変更、簡単だと思ってやったらレンダリングようの光がないとかいうのであきらめて参考になるWebページをまねた。質問者が返答にありがとうと言って動作確認したような書き込みもあったのだが
全然ダメで泣けてきた(まあ、自分がやったコードと実質変わりがないので危ぶんでいたんだけど全然ダメだったのは感動もんだった)
これについてはマテリアルをアセットに作るだけじゃなくてインスタンシエートしてやれば良いんじゃないかと解決案はあるので気にしない。

今回も確認前にリンクを貼っとくためにこれ書いてる(またとん挫するかも知れんが)今回は説明みるかぎり有望。
スクリプトの変数なので、スクリプトの貼ってあるオブジェクトをParentから身に行けるかなと適当書いてもVisual Stuido上に選択肢がでなくて困ったので検索して見つけたソリューション
[Unity]他のオブジェクトについているスクリプトの変数を参照したり関数を実行したりする。
   unitychan = GameObject.Find ("unitychan");
   script = unitychan.GetComponent<UnityChanScript>();
でpublic設定されてるのを拾ってくるやつで。
COMでよくやる、Wscriptでの常套手段なので馴染みがある。
自分がやりたかったのはCanvas側のスクリプトで制御してるTEXTオブジェクトの表示終了を他のCubeオブジェクトのデモンストレーションが終了したタイミングで行いたいってだけだったんだ。
なんか各GameObjectの親ってSceneじゃないかと思うから、そこから辿りたいんだけどねー。
まあ一意的な名前でGameObject拾ってそれに張り付いてるスクリプトをゲットするだけでいいんだからこれでいいか

なんにせよコード書いてウジャウジャ動かすのは楽しい



0 件のコメント:

コメントを投稿