Created
January 11, 2014 07:13
-
-
Save Buravo46/8368033 to your computer and use it in GitHub Desktop.
【Unity】クリック位置がオブジェクト内ならば、クリックした位置にPrefabを生成するスクリプト。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#pragma strict | |
// 生成したいPrefab | |
var Prefab : GameObject; | |
// クリックした位置座標 | |
private var clickPosition : Vector3; | |
// スクリーンの座標をワールド座標に変換したクリックした位置座標 | |
private var screenToWorldPointClickPosition : Vector3; | |
private var collition2d : Collider2D; | |
private var hitObject : RaycastHit2D; | |
var tagName : String; | |
function Start () { | |
} | |
function Update () { | |
// マウス入力で左クリックをした瞬間 | |
if (Input.GetMouseButtonDown(0)) { | |
// ここでの注意点は座標の引数にVector2を渡すのではなく、Vector3を渡すことである。 | |
// Vector3でマウスがクリックした位置座標を取得する | |
clickPosition = Input.mousePosition; | |
// Z軸修正 | |
clickPosition.z = 10f; | |
// スクリーン座標をワールド座標に変換する | |
screenToWorldPointClickPosition = Camera.main.ScreenToWorldPoint(clickPosition); | |
collition2d = Physics2D.OverlapPoint(screenToWorldPointClickPosition); | |
hitObject = Physics2D.Raycast(screenToWorldPointClickPosition,-Vector2.up); | |
// HitしたObjectがあるかどうか | |
if(hitObject){ | |
if(hitObject.collider.gameObject.tag == tagName){ | |
// Prefab生成 : Prefab, Psition, Rotataion | |
// スクリーンの座標をワールド座標に変換する | |
Instantiate(Prefab, screenToWorldPointClickPosition, Prefab.transform.rotation); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment