Unityの勉強を再度やり直しています。 ゲームの作成はcocos2dxなどで、どうすればいいのかは大体理解をしていますが、それをUnityでどうすればいいのかがわかりません。 使い慣れていないので仕方がないことなので、まずは色々と触りながら覚えていきたいです。
今回は、スクリプト内で他の「オブジェクト」や「スクリプト」などを呼び出して制御する方法です。
オブジェクトにアクセスする
まずは、Unityには日本語のリファレンスも充実しているので、これを参考にしていきたいです。
GameObject.Find
まずは、オブジェクトの「名前」からアクセスをする方法です。
[c] private GameObject player;
void Start(){
player = GameObject.Find("Player");
//制御 player.transform.position = pos;
}
[/c] Unity - Unity Manual
GameObject.FindWithTag
次にオブジェクトのタグを利用する方法です。
[c] private GameObject player;
void Start(){
player = GameObject.FindWithTag("obj1");
//制御 player.transform.position = pos;
}
[/c] Unity - Unity Manual
オブジェクトInspectorで指定する
先ほどまではスクリプト内でオブジェクトを取得していましたが、Inspectorを使ってオブジェクトを指定する方法もあります。 この場合、変数をpublicで作成します。 [c]
public int hitPoint; public int scorePoint;
[/c]
このようにすればUnityの画面上で変数の値を変えることができます。
親オブジェクトを所得する
オブジェクトに階層があり、子オブジェクトから親オブジェクトを呼び出す方法は以下の通りです。
- 親:Score GUI
- 子:Score
- 子:HighScore
[c] private GameObject _parent;
void Start(){
//親オブジェクトを取得 _parent = transform.root.gameObject;
}
[/c]
カメラにアクセスする
カメラでは、画面のサイズなどを所得できるので利用頻度は高いと思います。 [c] private GameObject _camera;
void Start(){ //画面のサイズを取得 camera = Camera.main; Vector2 max = camara.ViewportToWorldPoint(new Vector2(1,1));
}
[/c]
コンポーネントにアクセスする - GetComponent
RigidbodyやColliderなど、ゲームを作成する際には色々「コンポーネント」をゲームオブジェクトに追加します。
このコンポーネントを呼び出します。
[c]
//BocCollider2Dのsizeを呼び出す
Vector2 size = GetComponent
[/c]
スクリプトにアクセスする
- Script1
- Script2
例:Screip2で「Script1」のメソッドにアクセスする
スクリプトのコンポーネントの一種なので、先ほどのGetComponentが利用できます。 [c] //Script1
public float speed; public float objctDelay;
public void Move(Vector2 direction){
rigidbody2D.velocity = direction * speed;
}
//Script2 private Script1 _script1;
void Start(){
//Script1を取得
_script1 = GetComponent
}
//メソッドにアクセス _script1.Move(transform.up *-1);
//変数にアクセス bool hoge = _script1.objectDelay;
[/c]
最後に
簡単ですが、スクリプトでコンポーネントを取得する方法を紹介しました。 最初はよくわからない部分が多かったですが、慣れてみると結構使いやすいと思いました。
オブジェクトとコンポーネントは一気に取得することもできます。 [c]
Vector2 max = Camera.main.ViewportToWorldPoint(new Vector2(1,1));
[/c]
Unityによる2Dゲーム開発入門 ~プログラミング初心者がゲームを公開する最短コース 中島 安彦 技術評論社 売り上げランキング : 29883 Amazonで詳しく見る |