AI教科書

ChatGPT, Stable Diffusion、Python, Visual Studio、Excelなどいろんな教科書

【Unity】その他の便利関数 [シーン管理・ファイル管理]

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

 

 

 

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ