画面の半分をクリック
if(Input.GetMouseButtonDown(0)) { if (Input.mousePosition.x >= Screen.width / 2) { Debug.Log("右側"); } if (Input.mousePosition.x <= Screen.width / 2) { Debug.Log("左側"); } }
プレイヤの縦移動にカメラが追従する設定(カメラにアタッチ)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraController : MonoBehaviour { GameObject player; void Start() { player = GameObject.Find("Player"); } void Update() { Vector3 playerPos = player.transform.position; transform.position = new Vector3(transform.position.x, playerPos.y, transform.position.z); } }
地上にいる時のみ
if ( rigid2D.velocity.y == 0)
オブジェクト生成
GameObject go = Instantiate(hogeprefab) as GameObject; go.transform.position = new Vector2(transform.position.x, transform.position.y);
hogeを自分の子オブジェクトに移動する
hoge.transform.parent = gameObject.transform;
1~11の目があるダイスを振る
int dice = Random.Range(1, 12);
void OnTriggerEnter2D(Collider2D other) { if(other.gameObject.tag == "hoge") { } }
すり抜ける物体(Is Trigger)との接触
void OnTriggerEnter2D(Collider2D other) { }
すり抜けない物体との接触
void OnCollisionEnter2D(Collision2D collision) { }
物体の破壊
Destroy(gameObject); {gameObjectを任意の名前にすることで指定したオブジェクトを破壊できる}
Invoke(物体が接触した2秒後に"void Destroy()"の処理を行う)
void OnCollisionEnter2D(Collision2D collision) { Invoke("Destroy", 2); } void Destroy() { Destroy(gameObject); }
オブジェクトのスクリプトの接続を切る/つける
hoge.GetComponent<hoge>().enabled = false/true;
オブジェクトの接続を切る/つける
GameObject.SetActive(false/true);
ぶつかったオブジェクトの座標を取得
private void OnTriggerEnter2D(Collider2D other) { hogePos = other.gameObject.transform.position; }
**親のオブジェクトを参照** GameObject hoge; void Start() { hoge = transform.parent.gameObject; }
public class CoinCreater : MonoBehaviour { //コピーする元となるコイン [SerializeField] private GameObject _originalCoin; //Update処理は毎回呼ばれる void Update() { //マウスクリックをした if (Input.GetMouseButtonDown(0)) { //クリック地点からレイを作成する var ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; //レイの先にオブジェクトがある if (Physics.Raycast(ray, out hit, 500)) { //コインの生成位置の算出 var distance = Vector3.Distance(Camera.main.transform.position, hit.point); //クリック地点 var mousePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance); //クリック地点をワールド座標に変換 var position = Camera.main.ScreenToWorldPoint(mousePosition); //少し高い位置に生成 position.y += 5; //コインの生成 var objectBase = (GameObject)Instantiate(_originalCoin); //算出した位置を設定 objectBase.gameObject.transform.localPosition = position; //有効化する objectBase.gameObject.SetActive(true); } } } }
**この処理はさせない** return;
**constをつけた数字は変更することができなくなる** const
**Rayは光線の意味で、始点と方向を与えることで作成可能** Vector3 origin = new Vector3(0, 0, 0); // 原点 Vector3 direction = new Vector3(1, 0, 0); // X軸方向を表すベクトル Ray ray = new Ray(origin, direction); // Rayを生成
RaycastHit hit; const float maxDistance = 600; if (Physics.Raycast(ray, out hit,maxDistance)) // もし600の長さのRayを投射して何らかのコライダーに衝突したら { GameObject hitObject = hit.collider.gameObject.name; // 衝突した相手オブジェクトを取得 Debug.Log(name); // コンソールに表示 }
**Quaternionは回転を表す言葉で、Quaternion.identityは、回転していない時の回転値を得られる** // xyz軸を軸にして1度、回転させているQuaternion Quaternion hoge = Quaternion.Euler(0f, 0f, 1.0f);
**オブジェクトがアクティブだったら** if(Hoge.activeSelf) { }