C#」カテゴリーアーカイブ

プログラミング言語「C#」に関するカテゴリーです。

C#の文字列補完

string.Format

string.Formatを使うと、次のような感じで変数の値を文字列に変換して出力できます。

コード

string name = "abc";
int value = 123;
Debug.Log(string.Format("name={0}, value={1}", name, value));

出力

name=abc, value=123

便利でよく使っていたのですが、C#6の文字列補完を使うとより簡潔な感じで書けるみたいです。

C#6の文字列補完

コード

string name = "abc";
int value = 123;
Debug.Log($"name={name}, value={value}");

出力

name=abc, value=123

16進表記

数値を16進表記で出力したい場合は:xを追加します。
:x4のようにして桁数を指定することもできます。

コード

int value = 123;
Debug.Log($"{value:x} {value:x4}");

出力

7b 007b

リンク

$ – string interpolation – C# reference | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated

Unable to locate Android SDKでapkがビルドできない場合

Unity HubでAndroid Buildに必要なモジュールをインストールしているのに

Android SDK not found
Unable to locate Android SDK.

のようなエラーメッセージが表示されてビルドできないという場合は、Android DevelopersからSDK toolsをダウンロードしてみると上手くいく場合があるようです。

手順

  1. Android Developersのサイトから使用したいプラットフォームのZipファイルをダウンロード。
  2. Unity Hubのインストール先の
    Unity/Hub/Unityのバージョン/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/
    にダウンロードしたファイルをunzip。(toolsというディレクトリ名)

ちなみに、SDKディレクトリ内にtoolsディレクトリが存在してる場合はこの方法では解決しないと思いますので、気を付けてください。

リンク

Download Android Studio and SDK tools | Android Developers
https://developer.android.com/studio/

Android SDK not found – Unity Forum
https://forum.unity.com/threads/android-sdk-not-found.762506/

'SceneCamera' is not valid

Unityで作業をしていたら次のようなエラーメッセージ

transform.position assign attempt for 'SceneCamera' is not valid. Input position is { NaN, NaN, NaN }.

が永遠と表示され、Unityを再起動してもエラーが出続けるという状況に遭遇した場合は、Sceneのタブを「右クリック » Close Tab」して、

Window » General » Scene

から開き直すと回復する場合があるようです。

Unityのバグなのか何か分かりませんが、Webで検索してみると結構古くからある現象みたいです。