###前提・実現したいこと
クリックした位置にPrefabを生成するスクリプトを書いたのですが、床より下の座標をクリックしても、prefabが生成されてしまいます。全て床の上に生成されるようにやってみたのですが、上手くいきません。
###発生している問題・エラーメッセージ
エラーメッセージ
###該当のソースコード
C#
1using UnityEngine; 2using System.Collections; 3 4public class ClickPositionCreatePrefabScript : MonoBehaviour { 5 // 生成したいPrefab 6 public GameObject Prefab; 7 // クリックした位置座標 8 private Vector3 clickPosition; 9 // Use this for initialization 10 void Start () { 11 12 } 13 14 // Update is called once per frame 15 void Update () { 16 // マウス入力で左クリックをした瞬間 17 if (Input.GetMouseButtonDown(0)) { 18 // ここでの注意点は座標の引数にVector2を渡すのではなく、Vector3を渡すことである。 19 // Vector3でマウスがクリックした位置座標を取得する 20 clickPosition = Input.mousePosition; 21 // Z軸修正 22 clickPosition.z = 10f; 23 // オブジェクト生成 : オブジェクト(GameObject), 位置(Vector3), 角度(Quaternion) 24 // ScreenToWorldPoint(位置(Vector3)):スクリーン座標をワールド座標に変換する 25 Instantiate(Prefab, Camera.main.ScreenToWorldPoint(clickPosition), Prefab.transform.rotation); 26 } 27 } 28}
###試したこと
void Update()に、
if (clickPosition.y <= 0) { Vector3 temp = clickPosition; temp.y = 0; clickPosition = temp; }
と書き加えてみたのですが、なにも変わりませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
最新のバージョンです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/15 05:07