よく使う型やクラスについて
名前 | 説明 | 例 |
---|---|---|
int 型 | 整数を扱う | int hoge = 5; |
float 型 | 少数を扱う | float hoge = 5.2f; |
bool 型 | 真理値を扱う | bool hoge = true; |
string 型 | 文字列を扱う | string hoge = "うんこ"; |
Vector3 | 3Dベクトルを扱う | Vector3 hogevec = new Vector3 (0.0f, 1.0f, 1.0f); |
GameObject | ゲームオブジェクトを扱う | GameObject Unko = GameObject.Find("unko"); |
Transform | オブジェクトの位置、回転、スケールを扱う | transform.position = new Vector3(0.0f, 0.1f, 0.3f); |
パブリックな変数と、プライベートな変数
変数は、publicとして設定するとインスペクターから変更することができるようになる。
外部から変更できなくしたい変数はprivateとして設定する。
コードの例
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour {
public float g_x; //float型で変数を宣言 パブリックで
public float g_y;
private float g_z; //float型で変数を宣言 プライベートで
// Use this for initialization
void Start () {
g_x = 0.0f;
g_y = 1.0f;
g_z = 0.0f;
}
// Update is called once per frame
void Update () {
//transform.positionにオブジェクトの座標が保存されている。
//そこに、新しい座標をnew Vector3 (g_x,g_y,g_z)で入れている。
transform.position = new Vector3 (g_x,g_y,g_z);
}
}
オブジェクトを外から操作する場合
さっきのスクリプトでは、オブジェクトに直接配置していたが、例えば空のオブジェクトにスクリプトを配置して、
そこから他の複数のオブジェクトを操作したい場合がある。
操作したいオブジェクトに名前を付け、それをGameObject.Find("オブジェクト名")で取得することができる。
あるいは、ゲームオブジェクト自体をパブリックな変数とすることで、インスペクターから操作したいオブジェクトを指定できる。
コードの例
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test2 : MonoBehaviour {
GameObject cubeA; //プライベートでGameObject cubeA を宣言
public GameObject cubeB; //パブリックでGameObject cubeB を宣言
void Start () {
//GameObject.Findで名前をもとにゲームオブジェクトを取得
cubeA = GameObject.Find ("Cube_A");
}
void Update () {
//それぞれをy軸で1度づつ回転
cubeA.transform.Rotate(0, 1, 0);
cubeB.transform.Rotate(0, -1, 0);
}
}