スクリプトの基礎

 Script(basic)

よく使う型やクラスについて

名前 説明
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);
	}
}