前置き
Unityの超々初歩的な処理をまとめた完全自分用のメモ。鳥頭すぎて何回使ってもまた新しく始めるときにごっちゃになっちゃうので;;
新しいことを学ぶたびに更新する予定
基本「動けばいいや精神」なのでそれほんとはやめた方がいいよ~~><みたいなのがあれば教えてくださると幸いです
本編
Rb移動
.cs
Rigidbody rb=GetComponent<Rigidbody>();
float speed=5f;
float x = Input.GetAxisRaw("Horizontal");
float z = Input.GetAxisRaw("Vertical");
rb.velocity = new Vector3(x,0,z)*speed;
速度を直接書き換えるやつ。Normalizeしないと斜め移動が1.414倍速になっちゃう。
prefab生成
.cs
Instantiate(Prefab,pos,Quaternion.identity);
Instantiate(Prefab,pos,Quaternion.identity,parent,false); //parentのローカル座標posに生成
Instantiate(Prefab,pos,Quaternion.identity,parent,true); //ワールド座標posに生成
prefabを位置pos(Vector3)に生成するやつ。親オブジェクトを指定するときはparentに親のtransformを入れる。
生成したprefabになにか処理をしたいときは↓
.cs
GameObject hoge=Instantiate(Prefab,pos,Quaternion.identity);
Destroy(hoge.gameObject);
多分Prefabのスクリプトでやった方がいい
マウスの座標
キー入力
.cs
if (Input.GetKeyDown(KeyCode.A)) Debug.Log("Aを押した")
if (Input.GetKeyDown(KeyCode.Alpha0)) Debug.Log("0を押してる");
if (Input.GetKeyUp(KeyCode.Space)) Debug.Log("Spaceを離した");
KeyCodeで指定するほかに"a","0","space"で指定する方法もあるらしい
マウス入力
キー入力とほぼ一緒
.cs
if (Input.GetMouseButtonDown(0)) Debug.Log("左クリック")
if (Input.GetMouseButtonDown(1)) Debug.Log("右クリック");
if (Input.GetMouseButtonUp(2)) Debug.Log("ホイールクリック");
マウス座標
.cs
Vector3 mousePos = Input.mousePosition;
Debug.Log("x:"+mousePos.x+",y:"+mousePos.y);
ゲーム画面左上を(0,0)としたピクセルのマウス座標。
平面2Dゲームとか作るときは下記のように画面中央からみたマウス位置のラジアン求めてムヒョとロージがあーだこーだしてる。
.cs
Vector3 mousePos = Input.mousePosition;
mousePos=new Vector3(mousePos.x-(Screen.width/2),mousePos.y-(Screen.height/2),0);
float Radian=Mathf.Atan2((mousePos.y),(mousePos.x));