3Dオブジェクトをマウスでドラッグして移動する(3D空間)
オブジェクトの移動方法には様々な方法がありますが、今回は、マウスを使って移動させることを試してみましょう
空間に浮かぶオブジェクトを移動するため、奥行きの移動はマウスのホイールを回すことで実現します
実行結果
上下左右の動きはマウスでCubeをドラッグしながら動かすことで実現します
奥行きに動きは、マウスのホイールを回すことで実現します
シーン構成
Cube(移動させるオブジェクト)
移動させたいオブジェクトを作成します
スクリプト
Cubeにアタッチするコード
マネージャを作成してアタッチしてもいいですが、今回は単純化のためにCubeにアタッチします
解説
マウスがをドラッグ(左ボタンを押したまま)したときに呼ばれるイベントハンドラになります
このスクリプトがアタッチされているCubeオブジェクトのワールド座標(3D空間の座標)をスクリーン座標に変換します
マウスの位置をスクリーン座標で取得しますが、スクリーン座標は2Dなので、先ほどのオブジェクトの座標をzの値として登録したものを使います
スクリーン座標からワールド座標に再度変換し直します
ただし、奥行き(z軸)は、オブジェクトの元の値を使っています
マウスのホイール値を取得します
これは加速になっていて、回した時だけ値が出ます
ホイールを回した時の値を現在のz軸の値に足します
移動量が奥行きの値に反映されることになります
z軸の値を反映させたものをこのCubeオブジェクトの奥行きの値として再度セットします
ディスカッション
コメント一覧
まだ、コメントがありません