Хочу сделать: (Приоритет на Quaternion что бы поворачивать)
- поворот камеры вокруг сфера.
- двигаться по направлению взгляда камеры
(Ничего не получается и поэтому обращаюсь к вам).
Камера двигается, но вокруг своей оси и двигается за сферой(
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraPosition : MonoBehaviour
{
public GameObject player;
public float speedRotation;
private Vector3 positionCam;
Quaternion positionTrans;
void Start()
{
positionCam = transform.position - player.transform.position;
}
void Update()
{
transform.position = positionCam + player.transform.position;
float mouseX = Input.GetAxis("Mouse X") * speedRotation * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * speedRotation * Time.deltaTime;
mouseX = Mathf.Clamp(mouseX, -180, 180);
mouseY = Mathf.Clamp(mouseY, -180, 180);
transform.rotation *= Quaternion.AngleAxis(mouseX, Vector3.up);
transform.rotation *= Quaternion.AngleAxis(mouseY, Vector3.up);
}
}
using System.Collections.Generic;
using UnityEngine;
public class CameraPosition : MonoBehaviour
{
public GameObject player;
public float speedRotation;
private Vector3 positionCam;
Quaternion positionTrans;
void Start()
{
positionCam = transform.position - player.transform.position;
}
void Update()
{
transform.position = positionCam + player.transform.position;
float mouseX = Input.GetAxis("Mouse X") * speedRotation * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * speedRotation * Time.deltaTime;
mouseX = Mathf.Clamp(mouseX, -180, 180);
mouseY = Mathf.Clamp(mouseY, -180, 180);
transform.rotation *= Quaternion.AngleAxis(mouseX, Vector3.up);
transform.rotation *= Quaternion.AngleAxis(mouseY, Vector3.up);
}
}