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型にしないとエラーになります。

Unity5で、「System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.」のエラー

Unity5IAP

Unity5.4を久々開いたら、下記エラーで実行できない。


Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded. at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool) at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0 at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in <filename unknown>:0 at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext ctx, System.Type extensionType) [0x00000] in <filename unknown>:0 at Mono.CSharp.GlobalRootNamespace.ComputeNamespaces (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0 at Mono.CSharp.Driver.LoadReferences () [0x00000] in <filename unknown>:0 at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0 at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 The following assembly referenced from mygame/Assets/Plugins/UnityPurchasing/Bin/Stores.dll could not be loaded:

色々いじった結果、Unity5のIAP(アプリの課金機能)が影響していたらしく、IAPのをアップデートしたら改善された。。

アップデートは、 Window -> Services に IAP(課金機能)があるので、
それをONに、ImportしなおせばOK!!

Unity5IAP

Unity 指定敵タグ等の合計値を出す

Unityで敵全部のHPをまとめたりする。

Unityで出現中の敵全員のHPを合計で出したりして、進捗を出す事はよくあるケースだと思う。

そんな時のC#スクリプト


int enemyAllHp = 0; GameObject[] targetEnemyObjs; // foreachで検索する、Enemyタグのオブジェクト。 targetEnemyObjs = GameObject.FindGameObjectsWithTag("Enemy"); foreach(GameObject targetEnemyObj in targetEnemyObjs){ // 敵HPの総数。 enemyAllHp += targetEnemyObj.GetComponent<EnemyController>().enemyHp; }

地道にループ

Unity NGUI UILabel周りをスクリプトを扱う方法一覧

Unityの便利なasset NGUI。
そのNGUIの「UI Label」をスクリプトから扱う方法

テキストの基準位置の変更(左寄せや、下寄せ等)

GetComponent<UIWidget>().pivot = UIWidget.Pivot.Center; //センタリング

または

GetComponent<UILabel>().pivot = UIWidget.Pivot.Center; 

でもOK

テキストの表示領域のサイズ変更

GetComponent<UIWidget>().width = 60; //幅
GetComponent<UIWidget>().height = 60; //高さ

Unity5 rigidbody2Dで、x,y,zの軸を固定する

x,y,zのいずれも固定する場合。

GetComponent<Rigidbody2D> ().constraints = RigidbodyConstraints2D.FreezeAll;

固定を解除する場合。

GetComponent<Rigidbody2D> ().constraints = RigidbodyConstraints2D.None;

z軸(回転)以外だけ解除する場合。

GetComponent<Rigidbody2D> ().constraints = RigidbodyConstraints2D.FreezeRotation;

スクリーンショット 2016-04-24 22.11.20

条件式で、どのタイプで固定されているか判別する場合

if( GetComponent<Rigidbody2D> ().constraints == RigidbodyConstraints2D.FreezeAll){
  // すべて固定されていたら
}

Unity5(C#) 2Dで物理ゲーム使う際によく使うメソッド一覧


回転角度取得

transform.localEulerAngles.z

左右方向への速度

GetComponent<Rigidbody2D> ().velocity.x

上下方向への速度

GetComponent<Rigidbody2D> ().velocity.y

全方向への速度を取得

GetComponent<Rigidbody2D> ().velocity.magnitude

重力や速度が早すぎてものを貫通する時等の制御に。

指定角度への力を加える

void Boost(float,direction,float speed){
    Vector2 v;
    v.x = Mathf.Cos(Mathf.Deg2Rad * direction) * speed;
    v.y = Mathf.Sin(Mathf.Deg2Rad * direction) * speed;
    GetComponent<Rigidbody2D> ().AddForce (v); //力加算
}

Unity Asset Storeで3Dゲームに超絶使える、キャラ自動生成の神asset!

Unity Asset Storeで3Dゲームに超絶使える、キャラ自動生成asset!

スクリーンショット 2015-07-05 13.09.51

Unityで3Dゲームに必ずといっていいほど、登場する人型の3Dキャラモデル
ゼロから作るには相当な時間と、ある程度の知識がないとつくれません。。
これを即解決してしまうバケモノAsset!その名も。

「UMA – Unity Multipurpose Avatar

https://www.assetstore.unity3d.com/jp/#!/content/13930

いや〜ほんとすごいです、このアセット!
いろんなゲームや場面で重宝しますね!

壮大な3DのPRGゲームを作るもよし!

よくあるバイオハザー●風FPSゲームを作るもよし!

人型3Dゲームはめっちゃ使いますね。

いや〜すごい!

Unity神ツールですが!このAsset神アセットです!

スクリーンショット 2015-07-05 13.45.24

ちょっと使ってみましたが、
Pro版じゃないとエラーがでてしまうので注意!

You told the Generator to usePRO but you don't have pro license. Toggling to false.