[Unity3D]LINQ to GameObjectの基本的な使い方
Unityで、Hierarychy上のGameObject操作を簡単に行えるAssetとして、LINQ to GameObjectというものがあります。これを使うと、ツリーの中から特定の条件に一致するGameObjectやComponentを検索する処理を簡単に書くことができます。 今回は、LINQ to GameObjectの基本的な使い方を紹介します。 まずは動作確認をかねて、基本的な使い方の説明です。 下記のコードでHierarychy上にある自陣の子孫に当たる全GameObjectを取得します。 LINQ to GameObjectを使うためには、”using Unity.…
続きを読む
[Unity]uGUIで、ボタンのクリックイベントを自動でセットする。
UnityのuGUIを使用してボタンを作る場合、Unityのインスペクタで設定するか、もしくはボタンのonClick.AddListener()メソッドを使用してイベントハンドラの登録が必要です。 画面中に存在するボタンが少ない場合はこの方法で問題ないのですが、 ボタンの数が多くなってくるとこの作業が大変になってきます。 このような場合は、リフレクションクラスを使うと、 名前合わせでイベントハンドラを自動登録することができます。 下記のコードを使用すると、例えば下記の場合にbtnStartのOnClickイベントとしてbtnStart_Onclick()を割り当ててることができます。 1.Hi…
続きを読む
[Unity3D]uGUIでボタンクリック時のハンドラをスクリプトで登録する
UnityでuGUIのボタンクリックに対するイベントハンドラを登録したい時は、 AddListenerメソッドを使用します。 using UnityEngine; using UnityEngine.UI; using System.Collections; public class MainSceneScript : MonoBehaviour { public Button btnStart; void Start () { // スタートボタンがクリックされたときのハンドラを登録 btnStart.onClic…
続きを読む
[Unity3D]Hierarchyに存在するGameObjectを検索する
Unityで、スクリプトからGameObjectや、ほかのコンポーネントを検索する方法です。 GameObjectの検索方法 名前を指定して検索する場合 GameObject player = GameObject.Find( "Player" );GameObject player = GameObject.Find( "Player" ); タグを指定して検索する場合 GameObject player = GameObject.FindGameObjectWithTag( "Tag_Player" …
続きを読む
[Unity]実機確認時にログを画面に出す
Unityでデバッグを行っている際、開発環境だとDebug.Log()でログを出力できます。 ですが、実機でデバッグしている場合は、Debug.Log()の出力が確認できません。 リモートデバッグを行えばログの確認が行えますが、そこまで手間をかけたくない場合は下記のコードで画面にログを出力できます。 // ログの出力 void Update () { log(" Time sinse fromStartup : " + Time.realtimeSinceStartup + "[12345678901234567890]"…
続きを読む
[Unity]Rigidbody2Dで回転を抑止するには
Unityで画面上にRigidBodyを設定したGameObjectに対して、回転を抑制したい場合 ConstraintsのFreeze Rotationにチェックを入れることで可能です。 ですが、RigidBody2Dには、Constraintsのパラメータがありません… RigidBody2Dで回転を抑止するには、替わりにFixedAngleにチェックを入れればOKです。 これで、予期せぬ回転を防ぐことができます。
続きを読む