FC2ブログ
05 «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.» 07

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

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

 

【ハルシオンブログ】なんか今週も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   

【ハルシオンブログ】forのなかでButton.onClick.AddListenerするとき 

こんにちは。
大坂です。

今日も寒いですね!
関東でも雪になるようです・・・。

さて今日のブログです。
forのなかでボタンのonClickのAddlistenerを設定したときのお話。

とりあえずこんな感じでやるとうまくいきません。
    public Button[] button;

void Start() {
for(int i = 0; i < button.Length; i++) {
button[i].onClick.AddListener(() => ButtonTest(i));
}
}

public void ButtonTest(int index) {
Debug.Log(index);
}

ボタンを4つセットしてループで回してボタンを押すとどのボタンを押してもログに「4」が出てきてしまいますね。


解決するには一時変数を作って「i」を入れてあげればちゃんと動きます。
こんな感じ
    public Button[] button;

void Start() {
for(int i = 0; i < button.Length; i++) {
int tmp = i;
button[i].onClick.AddListener(() => ButtonTest(tmp));
}
}

public void ButtonTest(int index) {
Debug.Log(index);
}

結果

ちゃんと意図したとおり動いてくれますね!

ちなみにAddListener はアクションを渡さないといけないみたいなのでこんな感じではコンパイルエラーになります。
    button[i].onClick.AddListener(ButtonTest(i));

で、ラムダ式にして渡してあげたんですけど、あれ?となったので、同じようなことになったときの参考になればと思います。
ではまたノシ

Category: Androidアプリ紹介

tb 0 : cm 0   

【ハルシオンブログ】Unity2018.2から(?)追加されたパーティクルのテクスチャ設定が面白かったのでやってみたよ。 

こんにちは。坂内っす。

Unity2018.2から?追加されたパーティクルのテクスチャ設定が面白い。
こんなことができますた。



なにをしたのかというと、ParticleのShape⇒Textureに絵を設定できるようになりました。
ここに絵を設定すると、パーティクルの色がTextureに設定した絵をベースに作られる感じのようです。



あとは、ボタンを押した時にベースの絵のSpriteを消しているだけ。

なかなか面白い機能ですね。

全然使い道分からないけどw

色々とパーティクルも機能が増えてきて、センスある人ならかっこええのどんどん作ってそうですよね!

俺もかっこええパーティクルつくりてー!!

ってことで、短いですが、簡単な新機能の紹介でした。

では、あでゅ~ノシ

Category: Androidアプリ紹介

tb 0 : cm 0