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やらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】最近Photon触りだしたんだけど、難しいんですよ?だれかしっかり教えてちょんまげ! 

こんにちは。坂内っす。

久しぶりにGooglePlayで「育成 少女」で検索。
あら、まだ2位3位じゃない。




なんでこんなにダウンロード少ないの!?

たしかに「育成」だけだと43位くらいだけどさ・・・


さて、Unityの話題。

最近Photon触ってるんですが、ほんと難しいですね。

何が難しいかって?



こんな感じで、キャラAとBがいて、物体Cがあるとします。

AとBはキャラクターで自由にそれぞれが動き、物体CにぶつかったらA,Bそれぞれがカウントする。
みたいな感じだった場合。
どうすればいいんでしょうか?


public void OnCollisionEnter(Collision collision) {
if(collision.gameObject.tag == "WallC") {
if(!photonView.IsMine) {
return;
}
count++;
}
}

public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) {
if (stream.IsWriting) {
stream.SendNext(count);
} else {
count = (int)stream.ReceiveNext();
}
}


こんな感じ?
これでUIの方でA、Bキャラのcountを表示してやればいいのかな?

弾をお互いうって、当たった時とかも、同じ感じでやればいいのかな?

撃った側で判定するのか、受けた側で判定するのかどちらもデメリットはあるようだけど、そこはうまくできないんだろうか・・・・

まだまだPhoton触ったばかりだけど、めっちゃめんどいというか、混乱するんですよね・・・・まじでPhotonマスターおしえてー!!!


ってことであでゅ~ノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】floatの比較は気をつけようね? 

こんにちは。
大坂です。

さて今週も小ネタです!

floatの比較をしてあれ?同じなのにtrueにならない!なんてことがたまーにありませんか?
こんな感じでやると結果がfalseになります。
float test_1 = 1.0f;
float test_2 = 0f;
for(int i = 0; i < 10; i++) {
test_2 += 0.1f;
}
Debug.Log(test_1 == test_2);


floatの比較をするときは「Mathf.Approximately」を使用するのがいいようです。
Debugのところだけ変更して実行すると。
Debug.Log(Mathf.Approximately(test_1, test_2));


ちゃんとtrueになりますね!
ということで、floatの比較には「Mathf.Approximately」を使うのがいいよって話でした。
ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】基本の基本ですが、stringのSplitで複数文字を使った分割の方法。(簡単な内容ですいませんorz) 

こんにちは。坂内です。

最近UnityでJSONをCSVに書き換える的なことをやった時に、そういえばどうやるんだっけ?となったことをメモ。

ちなみにC#でJSON->CSV変換って簡単にやる方法あるんですかね?

なんか見つからなかったからコードでごりごりやっちゃいました。


stringのsplitをやる際に、2文字以上の文字列で分割ってそのままじゃできませんよね。
Splitの引数ってChar型です。

そんな場合は、こうやれば複数文字での分割ができます。



string baseStr = "aaabbbccc";
string[] splitStr = {"ab"};

string[] strAry = baseStr.Split(splitStr, System.StringSplitOptions.None);
Debug.Log(strAry[0] + "/" + strAry[1]);



結果としては、「aa/bbccc」となります。

また、複数の単独文字で分割する場合は、以下のようにするといいようです。



string baseStr = "aaaxcczc";
char[] splitStr = {'x', 'z'};

string[] strAry = baseStr.Split(splitStr);
Debug.Log(strAry[0] + "/" + strAry[1] + "/" + strAry[2]);



結果としては、「aaa/cc/c」となります。

ということで、簡単なstringのSplitについてでした。

あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】ProjectのスクリプトとかがHierarchyにあるシーンのどこにあるか簡単に探す方法 

こんにちは。
大坂です。

以前こんな記事を書いていますが、似たようなやつというかだいたい一緒。
【ハルシオンブログ】HierarchyでスクリプトがどのGameObjectに付いてるか知りたかった

こんな方法でもできますよというだけです。
Projectの探したいスクリプトやプレハブを右クリックして、「Find References In Scene」を選択するだけです。




解除するときは「ref:~」を消すか、端っこにある×を押せば解除できます。

画像ファイルとかも探せるのでぱっと探したいときには便利ですね。
もちろんシーンをHierarchyにおいていないとだめですが。

ではではまたですノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】ファイルパスとかをstringに入れるとき 

こんにちは。
大坂です。

さてはて、ファイルパスとかをStringに入れるときに「\」を重ねてエスケープさせるのは意外とめんどくさいですね。
こんな書き方。
string path = "C:\\test\\test.txt";
でもこうすると重ねなくてもいいですねって話。
string path = @"C:\test\test.txt";
先頭に「@」を書くだけです。
これで大丈夫になるので、簡単なミスがなくなったり可読性が少し上がりますね!たぶんきっと!

すごい短いですがこれだけですよ。
ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0