クリエイターの教科書

ChatGPT, Stable Diffusion, Visual Studio, Excelなど教科書

【Unity】便利な技や関数 [エディタ拡大・プロジェクト複製・シーンやファイル管理]

Unityで基本の関数の覚え書きです。C#用です。

Unity便利な技

エディタの表示を大きくする

Preferrence>UISalingを変更。

 

変更前100%が

 

125%でこのぐらいに。

 

110%ぐらいにしたいんですけどどうやれば...

 

プロジェクトの複製、注意点

プロジェクトフォルダを複製します。

 

リネーム

 

ハブの追加でフォルダを選べばOK。

 

プロジェクトの削除

削除するときはハブで一度削除。

 

あとはフォルダを削除。

 

 

プロジェクトを複製してもBuildする先のフォルダが前のままでした。

Buildして実行する場合には、フォルダを指定しなおしたほうがよさそうです。

 

 

Visual Studio CodeのCodeLens「x個の参照」を消す

Unityで外部エディタでVisual Studio Codeを使っていると「x個の参照」というのが出ます。

 

使わないときには、無駄に行が増えるだけなのでうざいです。

 

オフにするには、「ファイル>ユーザ設定>設定」へ移動。

この機能はCodeLensと呼ばれるそうなので「Lens」で検索。

すると項目が出てくるので「Editor:Code Lens」のチェックをオフ。

 

プログラムファイルへ戻ると無事「参照」が消えていました。

 

 

JetBrains Rider Editor削除していいい?

nityのパッケージマネージャーを見ると、「JetBrains Rider Editor」というのがあります。

 

これはプログラムのコードを書く時のエディターのようです。

 

うちでは「Visual StudioCode」を使っているので使いません。

 

不要なら消してもいいのでしょうか。

 

とりあえず削除してみました。

 

 

とりあえず有料IDEみたいなので、使わない場合は削除してもよさそうです。

【C#】今日から始める Unity + Rider 生活【随時更新】 - Qiita

 

Visual Studio CodeでThe.NET Core SDK cannot be locatedのメッセージを消す

UnityでVisual studio codeを使っていると以下のような警告が出ます。

.「NET Core SDK」がみつからないよ、というものですが、別に入れたいわけではありません。

 

The.NET Core SDK cannot be located : Error running dotnet --info:Error: Command failed: dotnet --info dotnet.

 

 

.NET core sdkをインストールすれば解消されます。 

.NET Core 3.1 (Linux、macOS、Windows) をダウンロードする (microsoft.com)

 

ただ、「このリリースはサポートが終了したため、サポートされなくなりました。 .NET 8.0 などのサポートされているリリースに移行することをお勧めします。」とも表示されているのでいれなくていいかもしれません。

 

 

VSCodeの設定でCore sdkで検索すると「Suppress the warning that the .net core sdk is not on the path= CORE SDKがパスにない時の警告をやりすごす」というのがあります。

これをチェックすると警告はオフにできると思います。



 

 

アセット画面の表示文字数を増やす

アセット画面のリストビューでは似た項目が多いと文字数表示が少ないのでどれがどれかよくわかりません。

 

右下のスライダを横にめいっぱい移動すると表示される文字数は増えます。

が、アイコンがでかくて邪魔です。

 

今度は右下のスライダを左にめいっぱい移動。

すると文字メインのリストビューになります。これなら文字が確認できて選択しやすいです。

 

 

 

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

 

 

 

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

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