横方向を真ん中に固定し、高さだけを変えて、プレハブ生成できるしくみを作ってみましょう。
ScreenToWorldPointの中心は、画面サイズによって、X座標を設定します。
クリックの高さだけが変化し、常に画面中央にCubeが出現します。
ScreenToWorldPointで画面中心を設定
画面サイズによって、ワールドポイント中心の数値も変わるため、はじめに解像度の設定を行います。
ここでは、1920×1080 で作成しました。
床オブジェクトとして、Planeを作成します。
Cubeを作成してリジッドボディを追加。
Cubeをプレハブ化します。
Cubeの元データは消しておきます。
空のオブジェクトを作成します。
PutObject.csを作成し、GameObjectに追加します。
PutObject.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PutObject : MonoBehaviour { public GameObject prefab; private Vector3 mousePosition; void Update() { if (Input.GetMouseButtonDown(0)) { mousePosition = Input.mousePosition; mousePosition.x = 960.0f; //画面サイズ横幅の半分 mousePosition.z = 10.0f; Instantiate(prefab, Camera.main.ScreenToWorldPoint(mousePosition),Quaternion.identity); } } } |
プレハブのフィールドに、Cubeを入れます。
ゲームプレイして、画面上をクリックしましょう。
生成される位置は画面の真ん中で、高さだけが変わります。