#Unity 学習メモ
##参考サイト
- ActionScript入門Wiki - Unity - チュートリアル(http://www40.atwiki.jp/spellbound/pages/1313.html)
##視点切り替え Shift でシーンギズモ(右端のXYXと中心に四角のメニュー)クリックで見やすい視点にしてくれる。
##カメラの視点合わせ(Align With View) 見ている方向にカメラを持っていってくれる。
ショートカットShift + command + F
##Prefab 部品化する。 Assetsにドラック&ドロップ。
##Editorの変更 Unity-Preferences - External Tools -
External Script Editor で自分の好きなEditorを選べる。 (Mono Developが改良されたの変えなくても良いかも)
##Script 以下はUnity Script(JavaScriptに近い言語) ###Debug Debug.Log("hello world ->" + x);
###Transform いずれもTransformのPositionのZ軸を操作。
- transform.position.z += 0.1;
- transform.position += Vector3(0, 0, 0.1);
- transform.Translate(0, 0, 0.1);
###Input Input.xxxx でInputの操作
//ex
function Update () {
if(Input.GetButtonUp("Jump")) {
Debug.Log("Jumped!");
}
var x : float = Input.GetAxis("Horizontal");
transform.Translate(x * 0.2, 0, 0);
}
##衝突判定
*OnCollisionEnter *obj.gameObject.name
function OnCollisionEnter(obj : Collision) {
if(obj.gameObject.name == "RightWall") {
Debug.Log("Right Hit!");
}
if(obj.gameObject.name == "LeftWall") {
Debug.Log("Left Hit!");
}
}
##Gameobjectを動的に生成
Instantiate Prefabからパーツ指定
var ball : Transform;
function Update () {
if(Input.GetButtonUp("Jump")) {
Instantiate(ball, transform.position, transform.rotation);
}
}
##インスタンスの生成
//C#
Instantiate(src, new Vector3(0, 3, 0), Quaternion.identity);
##コルーチンとyield yieldキーワードでプログラムの実行を中断(return)させることが出来る。
//C#
yield return 0; // 中断。1フレーム後に処理再開。
yield return new WaitForSeconds(3f); // 中断。3.0秒後に処理再開。
###yieldを書ける場所の条件
- メソッドの戻り値がIEnumerator型である
- StartCoroutine()にメソッド名を指定して呼び出される
//EX C#
private void Start()
{
StartCoroutine("Test");
}
private IEnumerator Test()
{
yield return 0;
}
##未整理
Vector3は座標や角度(向き)を扱う型
xyzの3つのfloatが入る。
Vector3(0, 1, 0);
Random.Rangeはランダムな値をとる
Random.Range(-5.0,5.0);
応用
Vector3(Random.Range(-5.0,5.0),1,8)
###IEnumerator 非ジェネリック コレクションに対する単純な反復処理をサポート
###Quaternion.identity ワールド座標、またはそのオブジェクトの親の向きに追従するクオータニオン(オブジェクトの回転方向)を表す。
###Time.deltaTime Time.deltaTime には、前のフレームと今のフレームの時間的な差分が格納(単位は秒)
###本当に未整理
//3秒後にタイトル表示
StartCoroutine("ShowTitleDelayed", 3f);
// TimerゲームオブジェクトのTimerコンポーネントを取得
timer = GameObject.Find("Timer").GetComponent<Timer>();
// SpawnPointゲームオブジェクトにStartSpawn()関数を実行するようにメッセージを送る。宇宙ゴミの発生を開始
spawnPoint.SendMessage("StartSpawn");
//Tag debriを習得
GameObject[] debris = GameObject.FindGameObjectsWithTag("debri");
//あるだけ削除
foreach (GameObject debri in debris) {
Destroy(debri);
}
###未整理
UnityをC#で超入門してみる #1 Unity入門の章(http://qiita.com/hiroyuki_hon/items/0718a50e6569b6c5037a)
On系 OnMouse◯◯()系 マウスが乗った時等に呼び出します。 OnTrigger◯◯()系 トリガー状態のオブジェクトとの衝突状態によって呼び出します。 OnCollision◯◯()系 オブジェクトの衝突状態によって呼び出します。 OnControllerColliderHit() キャラクターコントローラーの衝突の際に呼び出します。 OnEnable() オブジェクトが有効状態になった時に一度呼び出します。 OnDestroy() オブジェクトが破棄される直前に呼び出します。 OnApplicationQuit() アプリの終了直前に呼び出します。
OnGUI() GUIの描画やイベントを処理する関数です。