質問はプレイヤーをFixedJoyStickを使ってマウスドラッグで移動させてます。ただマウスでドラッグして画面の回転もさせたいためプログラムを使いカメラオブジェクトにアタッチしたのですが、画面の回転スピードが速すぎるため遅くしたいです。回転スピードをInspectorから設定できる欄はあるのですが設定しても回転スピードの数値を0.01とかにしても速すぎるためもっと遅くする方法を知りたいです。あとFixedJoyStickを使って移動している最中は画面回転を停止させたいですがそれもうまくいきません。
以下は画面を回転させるコードになります。どなたかわかる方いましたら教えてください。
public
1 public Vector2 rotationSpeed; 2 public bool reverse; 3 4 private Camera mainCamera; 5 private Vector2 lastMousePosition; 6 void Start() 7 { 8 mainCamera = Camera.main; 9 } 10 11 void Update() 12 { 13 if (Input.GetMouseButtonDown(0)) 14 { 15 lastMousePosition = Input.mousePosition; 16 } 17 else if (Input.GetMouseButton(0)) 18 { 19 if (!reverse) 20 { 21 var x = (lastMousePosition.x - Input.mousePosition.x); 22 var y = (Input.mousePosition.y - lastMousePosition.y); 23 24 if (Mathf.Abs(x) < Mathf.Abs(y)) 25 x = 0; 26 else 27 y = 0; 28 29 var newAngle = Vector3.zero; 30 newAngle.x = x * rotationSpeed.x; 31 newAngle.y = y * rotationSpeed.y; 32 33 mainCamera.transform.RotateAround(playerObject.transform.position, Vector3.up, newAngle.x); 34 mainCamera.transform.RotateAround(playerObject.transform.position, transform.right, newAngle.y); 35 lastMousePosition = Input.mousePosition; 36 } 37 else 38 { 39 var x = (Input.mousePosition.x - lastMousePosition.x); 40 var y = (lastMousePosition.y - Input.mousePosition.y); 41 42 if (Mathf.Abs(x) < Mathf.Abs(y)) 43 x = 0; 44 else 45 y = 0; 46 47 var newAngle = Vector3.zero; 48 newAngle.x = x * rotationSpeed.x; 49 newAngle.y = y * rotationSpeed.y; 50 51 mainCamera.transform.RotateAround(playerObject.transform.position, Vector3.up, newAngle.x); 52 mainCamera.transform.RotateAround(playerObject.transform.position, transform.right, newAngle.y); 53 lastMousePosition = Input.mousePosition; 54 } 55 } 56 }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/03 04:37
2022/06/03 04:38