嗨, 我最近遇到了一个问题,我想添加使用第三人称视角使用角色相机进行侧面查看的可能性,但是在引入它之后,似乎其余代码似乎都被忽略了,就像可以删除开始代码一样其余的仍在工作,尽管我认为不应该。可能有点混乱,但是有人知道出什么问题吗?
using JetBrains.Annotations;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Camera : MonoBehaviour
{
public Transform ObjectToTrack;
public Vector3 delta;
void FixedUpdate()
{
transform.LookAt(ObjectToTrack);
var trackedRigidbody = ObjectToTrack.GetComponent<Rigidbody>();
var speed = trackedRigidbody.velocity.magnitude;
var targetPosition = ObjectToTrack.position + delta * (speed / 20f + 1f);
transform.position = Vector3.Lerp(transform.position, targetPosition, Time.smoothDeltaTime * 3f);
}
float cameraAngle = 0f;
void Update()
{
if (Input.GetKey(KeyCode.Mouse0)) cameraAngle += Input.GetAxis("Mouse X");
var quaternionX = Quaternion.Euler(0, cameraAngle, 0);
var positionX = ObjectToTrack.position
+ quaternionX * delta;
transform.position = positionX;
transform.LookAt(ObjectToTrack);
transform.rotation *= Quaternion.Euler(-30f, 0, 0);
}
}
答案 0 :(得分:0)
更新称为after固定更新,因此您要先设置位置然后覆盖它。
我建议更改此行
var positionX = ObjectToTrack.position + quaternionX * delta;
收件人
var positionX = transform.position + quaternionX * delta;
或者,更简而言之
transform.position += quaternionX * delta;