facebook twitter hatena line email

「Unity/3d/視点操作」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==サンプル== 右クリックからのドラッグで、視点操作 呼び出し(UniRxだと) <pre> Observable.EveryUpdate() .Where(_ => Input.GetMouseB...」)
 
(サンプル)
 
(同じ利用者による、間の4版が非表示)
行4: 行4:
 
呼び出し(UniRxだと)
 
呼び出し(UniRxだと)
 
<pre>
 
<pre>
Observable.EveryUpdate()
+
Observable.EveryUpdate()
             .Where(_ => Input.GetMouseButton(0))
+
             .Where(_ => Input.GetMouseButton(1))
 
             .Subscribe(_ => {
 
             .Subscribe(_ => {
 
                 RotateCamera();
 
                 RotateCamera();
行17: 行17:
 
{
 
{
 
     Vector3 angle = new Vector3(Input.GetAxis("Mouse X") * rotateSpeed,Input.GetAxis("Mouse Y") * rotateSpeed, 0);
 
     Vector3 angle = new Vector3(Input.GetAxis("Mouse X") * rotateSpeed,Input.GetAxis("Mouse Y") * rotateSpeed, 0);
     mainCamera.transform.RotateAround(player.transform.position, Vector3.up, angle.x);
+
     player.transform.RotateAround(mainCamera.transform.position, Vector3.up, angle.x);
     mainCamera.transform.RotateAround(player.transform.position, transform.right, angle.y);
+
     mainCamera.transform.RotateAround(mainCamera.transform.position, transform.right, angle.y);
 
}
 
}
 
</pre>
 
</pre>
  
 
参考:https://xr-hub.com/archives/6272
 
参考:https://xr-hub.com/archives/6272
 +
 +
==OSごとの左右クリックのとき==
 +
windows
 +
<pre>
 +
if (Input.GetMouseButton(1)) {} // 右
 +
if (Input.GetMouseButton(0)) {} // 左
 +
</pre>
 +
 +
mac
 +
<pre>
 +
if (Input.GetMouseButton(1)) {} // 副クリック
 +
if (Input.GetMouseButton(0)) {} // 通常クリック
 +
</pre>

2023年2月24日 (金) 21:14時点における最新版

サンプル

右クリックからのドラッグで、視点操作

呼び出し(UniRxだと)

Observable.EveryUpdate()
            .Where(_ => Input.GetMouseButton(1))
            .Subscribe(_ => {
                RotateCamera();
            })
            .AddTo(gameObject);
rotateSpeed = 2f;
private void RotateCamera()
{
    Vector3 angle = new Vector3(Input.GetAxis("Mouse X") * rotateSpeed,Input.GetAxis("Mouse Y") * rotateSpeed, 0);
    player.transform.RotateAround(mainCamera.transform.position, Vector3.up, angle.x);
    mainCamera.transform.RotateAround(mainCamera.transform.position, transform.right, angle.y);
}

参考:https://xr-hub.com/archives/6272

OSごとの左右クリックのとき

windows

if (Input.GetMouseButton(1)) {} // 右
if (Input.GetMouseButton(0)) {} // 左

mac

if (Input.GetMouseButton(1)) {} // 副クリック
if (Input.GetMouseButton(0)) {} // 通常クリック