Unityで基本の関数の覚え書きです。C#用です。
Unity便利関数
Unityになれるためのごくごく基本的な関数の紹介。
シーン・エディタ
シーンの切り替え
シーンはアセット上に作成できます。
ダブルクリックでそれぞれのシーンが開くので、編集できます。
シーンができたら、ファイル>ビルド設定をひらいて、あらかじめ「シーンを追加」しておきます。
スクリプトでは「using UnityEngine.SceneManagement;」を宣言してから使います。
あとはscene2へ移動する場合、以下のように書きます。
SceneManager.LoadScene ("scene2");
スクリプト自体は簡単ですが、ビルド設定のひと手間がちょっと面倒です。
エディタ停止
スクリプトからエディタを停止します。
UnityEditor.EditorApplication.isPaused = true;
インスペクタで変数を変更
[SerializeField] をスクリプトの変数宣言に使うとインスペクタ上で変更しやすくなります。
[SerializeField] をつけて宣言。
するとインスペクタ上で宣言した変数の値を変更できるようになります。
入力
いろんなトリガーを使う場合には「Event Trigger」
マウス入力の取得
「Input.GetMouseButtonDown」で取得。
void Update()
{
if (Input.GetMouseButtonDown(0))
Debug.Log("左ボタン");
}
キー入力
キー入力を取得。
WASDキーでの移動はよく使います。
if (Input.GetKey(KeyCode.Return))
Debug.Log("リターンキー");if (Input.GetKey(KeyCode.W))
Debug.Log("Wキー");
ファイル管理
ファイルのロード
「using System.IO;」を宣言してから使用します。
「Application.persistentDataPath」はアプリのパスを取得する関数。
「StreamReader」を使って読み込みます。
string path = Application.persistentDataPath + "data.txt";
using (var fs = new StreamReader(path, System.Text.Encoding.GetEncoding("UTF-8")))
{
string result = fs.ReadToEnd();
Debug.Log(result);
}
ファイルの保存
「using System.IO;」を宣言してから使用します。
「StreamReader」を使って書き込みます。
string path = "C:/_work/data.txt";
string sData="任意の文字列";
bool isAppend = false;//追記の場合true
using (var fs = new StreamWriter(path, isAppend, System.Text.Encoding.GetEncoding("UTF-8")))
{
fs.Write(sData);
}
時間差処理
「invoke」関数を使うと、一定時間後に処理を実行させることができます。
void Start () {
Invoke("doTest", 1.0f);
}
void doTest() {
Debug.Log("Now Testing.");
}
数学
ランダム
int rnd = Random.Range(1, 10);//これで1~9の整数値
切り捨て:Mathf.Floor
偶数丸め:Mathf.Round