Unity2Dでゲーム内に配置したオブジェクトをクリック(タップ)したい場合は、対象オブジェクトにCollider2D
(BoxCollider2D
とかCircleCollider2D
など)を設定した上でPhysics2D.Raycast
を使って実装できます。
サンプル
void Update()
{
if (Input.GetMouseButtonDown(0))
{
var mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
var hit = Physics2D.Raycast(mousePosition, Vector2.zero);
if (hit.collider != null)
{
// クリック位置にオブジェクトがある場合に実行したい処理
Debug.Log(hit.collider.name);
}
}
}
※3D用のCollider
と混同しないように気を付けてください。
リンク
Unity – Scripting API: Physics2D.Raycast
https://docs.unity3d.com/ScriptReference/Physics2D.Raycast.html
Unity – Scripting API: Collider2D
https://docs.unity3d.com/ScriptReference/Collider2D.html
関連記事
UnityでマウスがUI上にあるかどうかチェックするスクリプト
Unityでは、Physics.Raycastを使ってマウスがオブジェクト上にあるかどうか調べることができます。
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast (ray, out hit)) {
// 処理したい内容
}
ただし、上...
UnityのUIをスクリプトから操作する方法
UnityのUI(Pos X/Pos Y/Pos ZやWidth/Height)はRectTransformのlocalPositionやizeDeltaを使って操作できるようです。
Pos X/Pos Y/Pos Z
// Pos X
GetComponent<RectTransform> ().localPosition.x;
// Pos Y
GetComponent&...
UnityのSceneビューでUIを非表示にする手順
右上の「Layers」というドロップダウンメニューからUIの項目を外せば、SceneビューでUIを非表示にできるみたいです。*1
※非表示にしたいUIのLayerが「UI」以外になっている場合は適宜変更してください。
リンク
Layermask for scene camera? - Unity Answershttps://answers.unity.com/ques...
UnityでInput.GetKeyを使った操作
Unityでキーボード・ゲームパッドを使ってキャラクターを操作したい場合、
if (Input.GetKey("forward")) {
transform.position += Vector3.forward * Time.deltaTime;
}
のような感じでスクリプトを書くと思います。
ここで使う"forward"とかの文字列は
[Edit] » [Proj...