今日も↓のサイトを中心にお勉強。そろそろ卒業かな
http://www40.atwiki.jp/spellbound/pages/1313.html
今後定期的に使いそうなコード
・GUI Layout
FPS計測のGUI Layout表示版。ついでに現在時刻表示も
private void OnGUI() { GUILayout.BeginHorizontal ("box"); GUILayout.Box(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), GUILayout.Width(200)); GUILayout.Box("FPS:" + mFps.ToString() + " ( " + 1.0f / mFps * 1000.0f + " ms)", GUILayout.Width(200)); GUILayout.EndHorizontal (); }
・指定したGameObjectを中心に円運動
positionを計算する方法と、RotateAround関数を使う方法の二通り
特に検証していないけど、後者の方がいい気がする
public GameObject mTarget; // ターゲット public float mSpeedAngle = 10.0f; // 回転速度( degree/s ) //public float radius = 15.0f; // ターゲットまでの距離 //public float angle = 0.0f; // 角度 void Update () { if( null != mTarget ){ //Vector3 pos = mTarget.transform.position; //transform.LookAt(pos); // ターゲットの方向へ向き変更 // ターゲットの周りを円運動 //transform.position = new Vector3(pos.x + Mathf.Cos(angle) * radius, pos.y + radius, pos.z + Mathf.Sin(angle) * radius); //angle += 0.01f; // 第1引数:回転中心 第2引数:回転軸(今回はy軸中心) 第3引数:回転量 transform.RotateAround( mTarget.transform.position, Vector3.up, mSpeedAngle * Time.deltaTime ); } }
・衝突時の処理
Detonator Explosion Frameworkの導入テストも兼ねて
nameでの衝突対象の判断は色々面倒なので、tagの方がいい気がする
public GameObject mDetonatorPrefab; // Detonator Explosion FrameworkのPrefab // 衝突した瞬間の処理 private void OnCollisionEnter(Collision collision) { // Detonator Explosion FrameworkのPrefabのインスタンス生成 if( null != mDetonatorPrefab ){ // 衝突対象のチェック //if( collision.gameObject.name == "Cube(Clone)" ){ // nameで if( collision.gameObject.tag == "Cube" ){ // tagで // 爆発生成 Instantiate( mDetonatorPrefab, transform.position, Quaternion.identity); // 自身と衝突相手を削除 Destroy( collision.gameObject ); Destroy( this.gameObject ); } } }
その他
・一度prefabにすると、子オブジェクトの追加が面倒 ( 参考:http://pukapuka-ahirusan.blogspot.jp/2011/10/blog-post_31.html )
今の所の追加手順
① Hierarchyにprefabをぶち込む
② ぶち込んだオブジェクトに子を追加
③ 編集したオブジェクトをprefabにドラッグ(上書きする)
…もっとキレイな方法がある気がするな~
・パーティクル
「Emitter」は昔のシステムで、現在は「Shuriken」を使うらしい
で、下のサイトを参考に使ってみた。キレイキレイ
http://marupeke296.com/UNI_PT_No1_Shuriken.html
一応、Emitterも現在のUnityで使えるらしい
http://d.hatena.ne.jp/nakamura001/20130125/1359130053
・現状(WebPlayer)
※音注意
https://dl.dropboxusercontent.com/u/30427841/Unity_web/0811/Desktop.html