#現在の状況
現段階で書けているコードはマウスを左クリックすると、パブリックで設定したゲームオブジェクトがそのクリックした場所に生成されるような感じです。
↓コードはこちらになります
using System.Collections; using System.Collections.Generic; using UnityEngine; public class test_instance : MonoBehaviour { public GameObject obj; private bool beRay = false; private Vector3 moveTo; RaycastHit hit = new RaycastHit(); Ray ray = new Ray(); void Start() { } //常時行う処理 void Update() { if (Input.GetMouseButtonDown(0)) { RayCheck(); } if (beRay) { MovePosition(); } if(Input.GetMouseButtonDown(1)) { beRay = false; } } private void RayCheck() { ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 100) ) { beRay = true; Instantiate(obj, hit.point, Quaternion.FromToRotation(transform.up, hit.normal)); } else { beRay = false; } } private void MovePosition() { Vector3 mousePos = Input.mousePosition; mousePos.z = 10; moveTo = Camera.main.ScreenToViewportPoint(mousePos); obj.transform.position = moveTo; } }
ビルドするとこのような感じです↓
#実現したいこと
現在は左クリックしたらクリックした場所にキューブを設置するだけですが、その設置したキューブをその場所に設置するのではなく、マウスの動きに合わせて追従して動くようにしたいです。
最終的にはキューブがマウスの動きに合わせて動くような状態で、次に右クリックを押したらそのクリックした場所に設置、というような感じにしたいです。
やり方が分かる方、またはそれ以外でいい方法があれば、御助力をお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。