ultimate joystick用スクリプト
// BEGIN MIT LICENSE BLOCK // // // Copyright (c) 2016 dskjal // This software is released under the MIT License. // http://opensource.org/licenses/mit-license.php // // END MIT LICENSE BLOCK // using UnityEngine; [RequireComponent(typeof(Camera))] public class followCam3 : MonoBehaviour { public Transform Target; public float DistanceToPlayerM = 2f; // カメラとプレイヤーとの距離[m] public float SlideDistanceM = 0f; // カメラを横にスライドさせる;プラスの時右へ,マイナスの時左へ[m] public float HeightM = 1.2f; // 注視点の高さ[m] public float RotationSensitivity = 100f;// 感度 public float limitMax = 0.4f; public float limitMin = -0.4f; void Start() { if (Target == null) { Debug.LogError("ターゲットが設定されていない"); Application.Quit(); } } void FixedUpdate() { // var rotX = Input.GetAxis("Mouse X") * Time.deltaTime * RotationSensitivity; // var rotY = Input.GetAxis("Mouse Y") * Time.deltaTime * RotationSensitivity; float rotX = UltimateJoystick.GetHorizontalAxis("camStick")* Time.deltaTime * RotationSensitivity; float rotY = UltimateJoystick.GetVerticalAxis("camStick")* Time.deltaTime * RotationSensitivity; var lookAt = Target.position + Vector3.up * HeightM; // 回転 transform.RotateAround(lookAt, Vector3.up, rotX); // カメラがプレイヤーの真上や真下にあるときにそれ以上回転させないようにする if (transform.forward.y > limitMax && rotY < 0)//default 0.9 { rotY = 0; } if (transform.forward.y < limitMin && rotY > 0) { rotY = 0; } transform.RotateAround(lookAt, transform.right, rotY); // カメラとプレイヤーとの間の距離を調整 transform.position = lookAt - transform.forward * DistanceToPlayerM; // 注視点の設定 transform.LookAt(lookAt); // カメラを横にずらして中央を開ける transform.position = transform.position + transform.right * SlideDistanceM; } }
参考サイト
https://dskjal.com/unity/tps-camera.html