Skip to content

Instantly share code, notes, and snippets.

@3panda
Last active January 2, 2016 06:19
Show Gist options
  • Save 3panda/8262713 to your computer and use it in GitHub Desktop.
Save 3panda/8262713 to your computer and use it in GitHub Desktop.
Unityの便利な機能などを記録

#Unity 学習メモ

##参考サイト

##視点切り替え 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の描画やイベントを処理する関数です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment