我有一小段代码可以让精灵(在3D世界中)始终面向相机(它必须在3D空间中)。
public class CS_CameraFacingBillboard : MonoBehaviour {
private Camera m_Camera;
private void Start()
{
m_Camera = Camera.main;
}
void Update()
{
transform.LookAt(transform.position + m_Camera.transform.rotation *
Vector3.forward, m_Camera.transform.rotation * Vector3.up);
}
}
此代码确保精灵始终面向摄像机,使其向后倾斜,因为精灵上方的摄像机面朝下45度。当我在精灵上放置一个刚体时,精灵会自己朝着倾斜的方向移动。如果没有附加代码,刚体工作正常。
我怎么能有一个总是面向相机的精灵,并且附有一个刚体?
答案 0 :(得分:2)
您似乎已将刚体保留为Dynamic
,您应将其设为Kinematic
。
Box Collider
而没有锁定它的刚体旋转。
所以你有三种可能的解决方案:
Box Collider
并在刚体的Constraints
下冻结旋转:
Sphere Collider
(或其他不像方框一样,你可以在播放模式中查看它们。)另一方面,您可以通过简单地使用:
来避免使用LookAt
方法
transform.rotation = m_Camera.transform.rotation;
他们有相同的结果。