マッハ☆ごりー 2015/01/10 20:27

表示/非表示のスクリプト試し SetActive()と.renderer.enabled =

今回は画像なしです。

unityのスクリプトの日記。

コスチュームの切り替えをするのに、これまではゲームオブジェクトの表示非表示を
.SetActive()
で制御していたのですが、これだと都合が悪くて、
.renderer.enabled =
で試してみました。

プログラムの知識が乏しすぎるので、恐る々記述してみたら上手くいきました。


何をしたかったかというと、
あるタイミングで任意のオブジェクトのマテリアルを変更したかったのですが、
そのときにゲーム画面に表示されてないオブジェクトにも適用したくて、
.SetActive()
だと、単純に表示非表示ってだけでなく、 ゲームオブジェクト自体が無効になっている感じ?
プログラム詳しくないので上手く言えませんが、

コスチュームの切り替えを .SetActive()で制御している場合は、
1)射精アニメーションを再生させて、発射します。

2)液体がかかったマテリアルに変更します。

3)そのあと別のコスチュームに着せ替えると(例えば:ブラを着けてる状態からブラ半脱ぎの状態に着せ替えたとする)
とマテリアルが反映されません。
ようするに体には液体がかかっているけど、切り替えたコスチュームには液体がかかる前のマテリアルのまま。

のような感じになり、悩みました。


それで、
.renderer.enabled =
をコスチューム切り替えに使用してみたら上手くいきました。


知識のある人からみれば、ごくごく初歩的なことだと思うんですけど、
プログラムに関しては全然本職でない自分からしてみると、自力で解決できてとても嬉しくなりました。

ちょっと前進したぞ って気分です。


そういえば、主人公に使用するテクスチャが50枚を超えてた・・・

月別アーカイブ

限定特典から探す

記事を検索