FC2ブログ
11 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 01

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】int配列をfloatの配列に変換したかったとき 

こんにちは。
大坂です。

タイトル通り配列の型変換について、普通にCast使ってできるかと思ったらできなかったので・・・。
これだとできない。
float[] testFloatArray = testIntArray.Cast<float>().ToArray<float>();
これもできない。
float[] testFloatArray = (float[])testIntArray.Cast<float>();
こんな感じでやるとできます。
int[] testIntArray = { 1, 2, 3 };
float[] testFloatArray = new float[testIntArray.Length];
testIntArray.CopyTo(testFloatArray, 0);

とまぁこんな感じで同じ長さの配列作ってCopyToを使えばいいって話でした。

すごく短いですが今日はこれでノシ
スポンサーサイト



Category: Androidアプリ紹介

tb 0 : cm 1   

【ハルシオンシステム】複数のオプション引数で後ろの引数だけに値を渡したいとき 

こんにちは。
大坂です。

こちらの記事でもオプション引数についてちょっと触れていますが、
【ハルシオンブログ】今週もちょこちょことC#の話・・・
複数のオプション引数を指定して、後ろの方の引数にだけ値を渡したいときがあると思いますがその方法。

まずは普通に複数のオプション引数を呼び出したとき。
    void Start() {
Test();
}

public void Test(int a = 1, int b = 2, int c = 3) {
Debug.Log("a:" + a);
Debug.Log("b:" + b);
Debug.Log("c:" + c);
}
呼び出し側では何も指定しないで呼び出せますね。(前の記事の内容と同じですが)


次にbだけ違う値にしたいときはこんな感じで書けます。
    void Start() {
Test(b: 10);
}

public void Test(int a = 1, int b = 2, int c = 3) {
Debug.Log("a:" + a);
Debug.Log("b:" + b);
Debug.Log("c:" + c);
}
引数を渡すときに「b: 10」としてあげるだけです。


ちゃんとbの値が変わりますね。
複数のオプション引数でも特定の場所に値を渡せるので便利ですね!

では今週もこれにてノシ

Category: Androidアプリ紹介

tb 0 : cm 0   

【ハルシオンブログ】なんか今週もDictionaryのネタですよ。 

こんにちは。大坂です。

先週もDictionaryのことを書きましたが今週も引き続き。
どうにも最近見る機会が多いのでス。

今日は、存在しないKeyにアクセスしたときのお話。

こんなのね。
    void Start() {
Dictionary test = new Dictionary();
Debug.Log(test[0]);
}

実行するとKeyNotFoundExceptionが発生します。

しかしこれも、こんなAPIがあります。
TryGetValue。
使い方はこんな感じです。
    void Start() {
Dictionary test = new Dictionary();
string str = "test";
test.TryGetValue(0, out str);
Debug.Log(str);
}

これでエラーは出ないのですが、
注意点としては上のコードだと変数「str」に初期値「test」を入れていますが、TryGetValueでは型の既定値が返されます。
stringの場合は「""(空文字列)」、intの場合は「0」が返されます。
TryGetValueの戻り値でboolを返してくれるのでそのへんで判断してもいいのかもしれません。

まぁ・・・Keyがないのにアクセスすることがそんなにあるかはわかりませんが・・・。

ではでは今週もこれにてノシ

Category: Androidアプリ紹介

tb 0 : cm 0   

【ハルシオンブログ】Dictionaryでforeachするときって 

GW明けてこんにちは。

では早速今週も書いていきます。

Dictionaryでforeachを回すときにKeyだけ取って回してました。
こんなふうに。
    Dictionary test = new Dictionary() { { "key1", 1 }, { "key2", 2 }, { "key3", 3 } };
foreach(string key in test.Keys) {
Debug.Log(key + ":" + test[key]);
}

Keyを全部取ってそのKeyの値を持ってきてましたが、これ両方一気に取れんないのかな?と思って見たら普通にありますね・・・。

   Dictionary test = new Dictionary() { { "key1", 1 }, { "key2", 2 }, { "key3", 3 } };
foreach(KeyValuePair pair in test) {
Debug.Log(pair.Key + ":" + pair.Value);
}

なんとなくKey取って回すって感じで思ってたのでずっとそのままやってましたが、ちゃんと調べないとだめですねー。

では今週もメモ的な感じですがこれにてノシ

Category: Androidアプリ紹介

tb 0 : cm 0   

【ハルシオンブログ】BuildSettingsに設定したシーンの数とか一覧がほしいとき 

こんにちは。
大坂です。

BuildSettingsに設定したシーンの情報がスクリプトでほしいことがあったときのお話です。
ここのやつね。


設定している数は「SceneManager.sceneCountInBuildSettings」で取得でき、
設定している一覧がほしいときは「SceneUtility.GetScenePathByBuildIndex」を利用して取得します。
「SceneUtility.GetScenePathByBuildIndex」は名前の通りパス付で取れます。

    Debug.Log("BuildSettingsのシーン数:" + SceneManager.sceneCountInBuildSettings);
for(int i = 0; i < SceneManager.sceneCountInBuildSettings; i++) {
Debug.Log(SceneUtility.GetScenePathByBuildIndex(i));
}

結果はこれ


ここの情報が欲しいことがあることは少ないかもしれませんが、一応取れますよってことで。
ではまたノシ

Category: Androidアプリ紹介

tb 0 : cm 0