我让脚本跟随摄像机跟随玩家,但是我不希望它跟随他的X轴。因此,它只能在玩家的Z轴上平稳地跟随玩家。有什么建议吗?
相机脚本:
public Transform Ball;
public float SmoothSpeed = 0.125f;
public Vector3 offset;
bool MoveCamera = true;
void Start () {
}
public void FixedUpdate () {
if(MoveCamera == true){
Vector3 desiredPosition = Ball.position + offset;
Vector3 SmoothedPosition = Vector3.Lerp(transform.position, desiredPosition, SmoothSpeed);
transform.position = SmoothedPosition;
}
if (transform.position.z >= 2f)
{
MoveCamera = false;
}
}
答案 0 :(得分:0)
public gameObject toFollow;
Vector3 camDistance;
public void Start(){
camDistance = toFollow.transform.position-Camera.main.position;
}
public void Update(){
Vector3 following = new Vector3(Camera.main.x,Camera.main.z,toFollow.transform.position.z-Camera.main.position.z);
Camera.main.transform.position = following;
}
我只是把这些放在一起,所以可能需要一些调整,但是它应该可以带您到需要的地方。或者...。您可以向相机添加刚体,然后在检查器中选中x和y轴上的约束框。这将使其仅在z轴上移动(如果您沿此路线行驶,请记住也要为相机刚体转动重力)
答案 1 :(得分:0)
那只改变z分量呢?
public void FixedUpdate () {
if(MoveCamera == true){
Vector3 desiredPosition = new Vector3(0, Ball.position.y + offset.y, Ball.position.z + offset.z);
Vector3 SmoothedPosition = Vector3.Lerp(transform.position, desiredPosition, SmoothSpeed);
transform.position = SmoothedPosition;
}
if (transform.position.z >= 2f)
{
MoveCamera = false;
}
}
答案 2 :(得分:0)
2019年的每个人都需要相机使其3D角色偏离特定位置吗?这是一个简单的解决方案!将此脚本附加到要跟随播放器的摄像机。在Unity编辑器中选择播放器作为目标。
此脚本将摄像机的新位置设置为
(编辑:LaTeX到哪里去了?)
$v = <targetPosition.x + xOffset, targetPosition.y + yOffset, targetPosition.z + zOffset>$
此脚本的优点:
限制: -由于相机方向是固定的,因此您需要确保角色不会被风景遮挡。 -这种相机控制方式最适合于第三人称正投影。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
public Transform target;
Vector3 targetPos;
void Update()
{
targetPos = target.position;
transform.position = new Vector3(targetPos.x + 10f, targetPos.y + 8.571067812f, targetPos.z - 10f);
// transform.LookAt(target.transform);
}
}
我的用例需要正交投影。正射角通常为30度的倾斜角,因此我的偏移量是后10个单位,超过10个单位,并且上斜边的一半(即,上10 * sqrt2 * 1/2)。我也将y位置增加了角色的高度(1.5个单位),我认为这将为相机目标提供更好的中心。这样得出的y偏移约为8.571067812。