最新情報(固定記事)

※※※※※※※※※※※※※※※※※※※※※※
計画中!
★ルビーのスパイ作戦
カードバトルxアドベンチャー
製作の最新情報はCi-enにて!

発売中!
えびげん、ターニャのラインディフェンス(NEW!)
エヴァいじり
弄ってイかせよう。シミュレーションゲーム!
・キャッスルえびる登録情報ページ
・スーサイダー登録情報ページ
・スペルマスター登録情報
・パツィーノの幸せの鳥登録情報
・ミナーヴァ登録情報

ダンジョンオブエロチックマスター発売中!(プログラム担当)
------------------------------------------------------------
★更新情報(2018/11/01)

※※※※※※※※※※※※※※※※※※※※※※

2014年1月12日日曜日

Unity関連

まとまった情報があったので記載

■プログラミングメモ

■Unity

・ActionEvent

モーションの途中や最初、最後に追加すると、スクリプトの関数を呼び出すことができる。


こいつを使えば、「Nフレーム目にショットを出す」といったことがAnimationウィンドウだけで設定出来る。
ちなみに、ショットなど生成して消したりはPrefab化したものをInstantiateでインスタンス化するのが定石っぽい。
詳細はUnity2Dのチュートリアルプロジェクト(特にGun.cs)参照。
Rocket.csには自身を2秒で消す処理もあるので参考になる。(1秒未満にしたい場合はアニメーションとかUpdate()内でTime.deltaTimeとか使って手動でDestroy(gameObject)すればOK。)

3Dだがチュートリアルプロジェクトの「Stealth」も参考になるので見るべき。


なおActionEventに登録できる関数には、条件として「引数が0個、またはint,float.doubleいずれか1個のみ」がある。引数を2個以上設定したり、他の変数タイプを指定すると一覧に出てこない。
(エラーも出ないので、出ないときは引数などをチェック)

なお、2つめ以降のスクリプトの関数を指定していると(Function not supported)と出ることがあるが、一応呼ばれては居る模様。よく分からん。
関連スレッド


・GameObjectの表示の切り替え

服装の変更に表示切り替えを使っている。

ゲームオブジェクトの表示切り替えには、「RendererON/OFF」と、「Active/非Active切り替え」の二つの方法がある

で、Recursiveに全部切り替えるのも良いが、一個一個切り替えたい場合もある。
その時はgameObject.SetActive()でOK。

で、現在有効(Active)かを知る方法は二つあり、activeSelfはそいつ自身のActive状態(true/false)がわかり、gameObject.activeInHiererchyは親が非Activeの場合は問答無用で非Active(false)になるといった調べ方ができる。
ヒエラルキーは何が嬉しいかというと、見えないgameObjectを弄る必要がなくなるという点。

Unity上では親が非Activeになると、子も全て非Active扱いであり表示されなくなる。
しかし、activeSelfだけだと親関係無くActive状態が取れてしまう。

ヒエラルキーを使う事で、親が非Activeな場合は子も全部非Activeとなり、そっとしておくことが出来る。

ちなみに、現在作っているゲームは服装/アーマー/下着と、それぞれの破損時/通常時の計6パターンある。
そのため、それぞれをタグ付けして、GameObject.FindObjectsWithTag()を使って一気に服装を取得する方法を取っている。

服装は頻繁に変えないので、処理的には問題無さそう。(大量の服Spriteを全部仕分けておく必要があるが。)


・疑似3D(ベルトアクションとか見下ろし用)

仮想地面を作ってみたが、他のキャラが普通に横方向でつっかえるので使えないことが判明。

とりあえず数値で仮想地面を超えないように設定。
とはいえ、今のところあまり上手く動いてない。なんとかならないか試し中。





0 件のコメント:

コメントを投稿