Unity、角度を適用させる〜備忘録。

Unityで毎回、角度適用の仕方を忘れてしまうので、メモφ(..)メモメモ

角度を加算する。


transform.Rotate(0,0,addAngle);

指定の角度にする


// 角度を適用 transform.rotation = Quaternion.Euler(0.0f,0.0f,targetAngle);

transform.rotation = targetAngle; みたいな事はできないのでご注意をw

Unityで二次元配列を、stringに変換するコード

2次元配列を、string変換

Unityで通信用に変換したりする時に利用できそうなのでメモ。
下記は、int型の二次元配列の例でっす


// 二次元配列を文字列化 public static string Arr2StrEncode(int[,] intArr){ string str = ""; for (int i = 0; i < intArr.GetLength(0); i++) { for (int j = 0; j < intArr.GetLength(1); j++) { str = str + intArr [i, j].ToString(); str = str + ","; //列の区切り文字 } str = str + "\n"; //行の区切り文字 } return str; }

namespaceで、一元化しておくと便利。
あと、列と、行の区切り文字も変換できるようにしておいた方がいいです。。

Unityで、指定のGameObjectの子の数だけ、カウント&制御

unity5 Hierarchy 子供の数制御

Unityで、指定のGameObjectの子供の数分foreachで、数えて。表示/非表示

ハート等のライフポイントの数だけGameObjectを出す例。

unity5 Hierarchy 子供の数制御

上記のように、Hierarchyに配置したGameObjectの子の数を数えて、表示、非表示など制御。


GameObject arrObj = GameObject.transform.Find ("GameObject/GameObjectHoge").gameObject; int num = 0; foreach(Transform childObj in arrObj.transform){ // ライフポイントの数だけ、GameObjectをアクティブにして表示、指定ポイントより低かったら非アクティブ if (lifeCount > num) { childObj.gameObject.SetActive (true); } else { childObj.gameObject.SetActive (false); } num += 1; }

この例だと、ライフポイントの数だけ、GameObjectをアクティブにして表示、指定ポイントより低かったら非アクティブして、
ライフポイントの表示制御をしています。

間違えやすいポイントとして、 foreachの型指定が、GameObject型ではなく、Transform型にしないとエラーになります。