前回質問させていただき、その後少し手を加えました。
できれば前回の質問も見ていただけると幸いです。
void Update()
{
timer += Time.deltaTime;
if (timer < 3.0) { if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit = new RaycastHit(); if (Physics.Raycast(ray, out hit,)) { GameObject obj = hit.collider.gameObject; Debug.Log(obj.name); MoveBrocks(); } } } } public void MoveBrocks(){ Vector3 pos1 = Input.mousePosition; var zjiku = pos1.y; pos1.z = 0; Vector3 pos2 = Camera.main.ScreenToWorldPoint(pos1); pos2.z = zjiku; transform.position= pos2; } }
キューブに適用しているスクリプトをこのように変更することで、
パネルをクリックしたときのみキューブが移動するようになりました。
ここまではよかったのですが、z軸への移動を成功させようと上の通り
var zjiku = pos1.y;
pos2.z = zjiku;
これらのコードを足してみました。
するとz軸方向への移動が可能になったことはなりました。
しかし、シーン上でも20×20×20くらいの大きさしか使っていないにも関わらず、
パネルをクリックしたとたんにキューブは350ほど奥に飛んで行ってしまいます。
落ちてくるキューブはPosition0,0,0に設置してある床(大きさは8×1×8です)に着地するようにしてあります。
そこへの着地地点をユーザーが自由に変えられるようにしようとしています。
カメラからの距離やパネルの位置などが関係しているのかと思い、
調べてもみましたが、改善点がわかりません。
パネルのPositionは0,15,5にしており、床の大きさと同じです。
床を立てて、少し離れたで生成されるキューブとかぶらないz軸に置いたのがパネルという感じです。
どうすればz軸の移動時にキューブが遠くへ行かなくなるのか、
どうかご教授よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/11 11:18
2016/04/12 04:23