将下面的脚本挂载在需要朝向相机的物体身上
using UnityEngine;
public class LookatCamera : MonoBehaviour
{
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
//transform.forward = transform.position - Camera.main.transform.position;
//
transform.forward = new Vector3(transform.position.x, 0, transform.position.z) - new Vector3(Camera.main.transform.position.x, 0, Camera.main.transform.position.z);
}
}
让物体始终朝向另外一个物体,带转向过程:
using UnityEngine;
public class AlwaysLookAt : MonoBehaviour
{
public Transform m_Target;
public float m_RotationSpeed = 10.0f;
public bool m_LimitXZPlane = true;
private Vector3 m_TargetDirection;
private Quaternion m_TargetRotation;
void Update()
{
if (m_Target == null)
return;
m_TargetDirection = m_Target.position - transform.position;
m_TargetDirection = m_TargetDirection.normalized;
m_TargetDirection = new Vector3(m_TargetDirection.x, m_LimitXZPlane ? 0 : m_TargetDirection.y,
m_TargetDirection.z);
m_TargetRotation = Quaternion.LookRotation(m_TargetDirection, Vector3.up);
transform.rotation = Quaternion.Slerp(transform.rotation, m_TargetRotation, Time.deltaTime * m_RotationSpeed);
}
}