モンハンやダークソウルのような一般的な三人称のアクションゲームであるプレイヤーを中心に回転するカメラの処理を作りたいです。
空のゲームオブジェクトを作りその子にメインカメラを設定して親にこのスクリプトをアタッチしています。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class player_camera : MonoBehaviour { public GameObject mainCamera; //メインカメラ格納用 public GameObject playerObject; //回転の中心となるプレイヤー格納用 public float rotateSpeed = 1.5f; //回転の速さ private Vector3 off; //呼び出し時に実行される関数 void Start() { off = transform.position - playerObject.transform.position; } //単位時間ごとに実行される関数 void Update() { off = transform.position - playerObject.transform.position; //rotateCameraの呼び出し rotateCamera(); } //カメラを回転させる関数 private void rotateCamera() { //Vector3でX,Y方向の回転の度合いを定義 Vector3 angle = new Vector3(Input.GetAxis("Mouse X") * rotateSpeed, Input.GetAxis("Mouse Y") * -rotateSpeed, 0); //transform.RotateAround()をしようしてメインカメラを回転させる mainCamera.transform.RotateAround(playerObject.transform.position, Vector3.up + off, angle.x); mainCamera.transform.RotateAround(playerObject.transform.position, transform.right + off, 0); } }
回答1件
あなたの回答
tips
プレビュー