Programming Serendipity

プログラミングを中心に種々雑多に書き留めます

Unity5 メモ18

今回でUnityメモシリーズはいったんお休みになるかもしれません。

  • プレイヤーを追従するカメラ
    プレイヤーのGameObjectの子オブジェクトにメインカメラを置く。

  • uGUIのOnClick()に適用可能な関数
    戻り値はvoidで、引数を1つまでとることができる。
    複数の引数を持たせたいときは、MonoBehaviourを継承したクラスに複数のフィールドを持たせ、そのクラスを引数にする。

  • ラグドール
    3Dモデルに適用させるオプションのようなもので、これを適用すると3Dモデルの体の各パーツに物理演算が働き、
    立っている状態から適用すると、全身が崩れ落ちるような動作が得られる。
    Create > 3D Object > Ragdoll... で設定できる

  • Occlusion Culling
    カメラから見えないオブジェクトを、その面単位で描画を省略する処理。
    例えば、都会のビル群のシーンでは視界に入る数百以上の建物で数千以上の面が存在するが、
    カメラから見えている面は数十程度であることが多く、それだけを描画すれば見た目は同じになる。
    一方Frustum Cullingは、視界に入っていないオブジェクトを、オブジェクト単位で描画を省略するもので、
    陰に隠れるなど、カメラから見えていなくてもカメラの視界の中(Near Clip PlaneとFar Clip Planeの間)にあれば全体が描画されてしまい、高速化のメリットは劣る。

  • プロファイラ
    ゲーム起動中にWindow > Profilerを起動すると、ゲームのパフォーマンスチェックができる

  • カメラとシーンの視界を一致
    GameObject > Align With Viewを選択すると、Sceneビューで今見ている視点にGameのカメラが変更される。
    GameObject > Align View to Selectedを選択すると、Gameビューで見ている視点にSceneビューの視点が変更される。

  • 生成したオブジェクトのマテリアルを変更する
    obj.GetComponent<Renderer>().sharedMaterial = yourMaterial;

  • あるオブジェクトの子オブジェクトに対してループを回す

foreach(Transform child in transform){  
    Something(child.gameObject);  
}  
/// or   
Transform[] allChildren = GetComponentsInChildren<Transform>();  
foreach (Transform child in allChildren) {  
    // do whatever with child transform here  
}