unityでGameObjectの位置、姿勢をリセットするボタンをつくる手順を解説していきます。
リセットするボタンを作ることで、移動してしまったGameObjectを元の位置に戻したり、ゲームをやり直す時にGameObjectのみを移動させることができます。手順作業も簡単なのでぜひ活用してください!
YouTubeにて解説動画を公開しています。
話すことに慣れていないため拙いですが、動画で学習したい方はこちらを参考にしていただければ幸いです。
(1)ボタンを設置する
Hierarchyビューで「Create」→「UI」→「Button」を選択し、ボタンを設置します。
追加した直後のボタンは、「Canvas」の下位層にあるはずです。ボタンの名前を「Reset」としておきます。また、ボタンを選択したら、InspectorビューからTextを「Button」から「Reset」へ変更しておきましょう。
(2)位置、姿勢をリセットするスクリプトの作成
ここがこのテーマの本題です。Projectビューで「Create」→「C#スクリプト」を選択し、追加します。スクリプトの名前を「Reset_Button」に変更しておきます。今回作成したスクリプトを下に載せておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Reset_Button : MonoBehaviour { /*クリックしたときの処理を記述*/ public void Onclick() { /*GameObjectのベクトルを読み込む*/ Vector3 tmp = GameObject.Find("GameObject").transform.position; /*GameObjectのベクトルを任意の位置に変更*/ GameObject.Find("GameObject").transform.position= new Vector3(0f, 1f, -8f); /*GameObjectがもつベクトル、回転を全て0にする*/ Rigidbody rigidBody = GameObject.Find("GameObject").GetComponent(); rigidBody.velocity = Vector3.zero; rigidBody.angularVelocity = Vector3.zero; rigidBody.ResetInertiaTensor(); } } |
コメントとして各コードの解説も付け足しておきました。コード内の””で囲われている部分は、位置と姿勢をリセットしたいGameObjectの名前に変更して下さい。例えば、GameObjectの「Sphere」の位置をリセットしたいなら、「GameObject」→「Sphere」にします。
public class Reset_Button : MonoBehaviour の「Reset_Button」は、スクリプトにつけた名前と合わせておいてください。
(3)ボタンに(2)で作成したスクリプトを追加
最後に、(2)で作成したスクリプトをResetボタンにアタッチしていきましょう。ProjectビューのReset_Buttonスクリプトをクリックしたまま、Hierarchyビューのボタンに合わせるだけで簡単にアタッチできます。ここで注意してほしいのが、ボタンは、「Canvas」→「Button」→「Text」の階層になっていますが、スクリプトを追加するのは、「Button」のところです。CanvasやTextに追加してもうまくいかないので注意してください。
次に、ボタンを選択し、Inspectorビューにある「Button(Script)」→「OnClick()」のところを操作していきます。
Button(Script)は、(2)で作成したスクリプトとは別物なので注意してください。「OnClick()」の下にある「+」をクリック。GameObjectを選択するボックスをクリックして、ボタンを選択します。下の画像を参照して下さい。
その後、「No function」と表示されているところから、「Reset_Button」→「OnClick()」を選択します。
これは、ボタンに追加されているReset_ButtonというスクリプトのOnClick()クラスを実行するという設定をしていたことになります。
下の画像を参照してください。
これでリセットボタンをクリックすることで、任意の位置にGameObjectを移動することができるようになりました。下のGifのようにボタンを押すことで位置がリセットされています。
Buttonの使い方について、さらに詳しく解説した記事を書きましたので、本記事でButtonの設定がよくわからなかった方は補足としてご利用ください。
最後まで読んでいただきありがとうございました。