Double Piece

見習いプログラマーによるUnity,DirectXTKだったりのメモブログ

名工大ハッカソンに向けての予習1

 こんばんは。今回は自分も参加する名工大ハッカソンが近いということでUnityのことについて簡単に書いていきます。

なぜUnityかと言いますと、前回参加させていただいたときに8割ほどのチームがUnityを使っていたので今回も主にUnityが使われることになるだろうと見越した結果です。

ちなみに前回の私はと言いますと、ほとんどUnityについて理解していない状態での突撃だったのとそもそもプログラミング経験が浅いこともありチームに対して十分な貢献ができたとは言い難いです。

という訳で今年はそのリベンジを果たすため、今のうちに基礎を洗い直しておこうかと。というより中途半端に覚えていた部分を固めていくという感じ。

 

予習第1回の今日はOnCollision系列とOnTrigger系列について書いていきます。

 

・Collision系列

OnCollisionEnter(Collision collision)

OnCollisionExit(Collision collision)

OnCollisionStay(Collision collision)

・Trigger系列

OnTriggerEnter(Collider collider)

OnTriggerExit(Collider collider)

OnTriggerStay(Collider collider)

  

この2つの関数の違いですがOnCollisionの方は衝突時に対応した処理を行うというもので、OnTriggerは衝突させずに対応した処理を行うというものです。

 

実際に違いを見てみましょう。

 

まず適当にUnityのプロジェクトを3Dで作って適当な大きさのSphereとぱっと見で「床だな」とわかるぐらいに伸ばしたCubeをSceneに置きます。分かりやすいように色付けときます。

f:id:mkp0824:20170418041713p:plain

色遣いがセンス無いとかは気にしないで。

 

そしてSphereにRigidbodyをアタッチする。当然、再生するとSphereは重力を受け落下し、Cubeに衝突すればお互いコライダーがついているので止まります。

 

という訳でこれで2つのオブジェクトが衝突しましたのでCubeにスクリプトを追加しOnCollisionEnter、つまり衝突時に呼び出される関数を記述していきます。

 

 

 

これだけ書いて再生してやると

f:id:mkp0824:20170418050251g:plain

 

 ロイロ君のロゴが邪魔なのは置いといて、当たった瞬間にConsoleの方にデバッグログが表示され関数が呼び出されていることが分かりますね。

 

さてじゃあOnTriggerEnterはどういう場合に使うのかですが...

 

はっ!?すっげえ時間になってる!?(現在5時18分)

 

という訳で、あんまり記事を分けたくなかったのですが当然の如く今日も学校なので次の記事に回したいと思います...

あと、OnCollisionEnterしか解説してないので他のも次に回します。

 

というか予習とかいいながらすっごい初歩的なことやってることに気づきましたが、自分の理解の甘い部分を埋めていってはいるので許してやってください。

 

今回はここまで。