【问题标题】:Unity: How to make camera look at a pointUnity:如何让相机看一个点
【发布时间】:2018-01-16 11:15:23
【问题描述】:

我目前正在冒险并陷入困境,希望有人可以帮助我: 我想让相机面对一个给定的点,我这样做的方式是这样的:

public void LookAtPosition(Vector3 lookPosition, float speed)
{
    StartCoroutine(LookAtTransformCorutine(lookPosition, speed));
}

public void LookAtPosition(Transform lookPosition, float speed)
{
    LookAtPosition(lookPosition.position, speed);
}

public IEnumerator LookAtTransformCorutine(Vector3 lookPosition, float speed)
{
    StopLookingAtMouse();
    Vector3 direction = (lookPosition - transform.position).normalized;
    Quaternion targetRotation = transform.rotation * Quaternion.FromToRotation(transform.forward, direction);
    while (Quaternion.Angle(transform.rotation, targetRotation) > 1f)
    {
        transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, speed);
        transform.localRotation = Quaternion.LookRotation(transform.forward);
        yield return new WaitForEndOfFrame();
    }
}

但问题是它只在相机旋转 0、0、0、1 时才有效

【问题讨论】:

    标签: c# unity3d camera rotation quaternions


    【解决方案1】:
     using UnityEngine;
     using System.Collections;
    
     public class LookAt : MonoBehaviour {
         public Vector3 target;
    
         // Update is called once per frame
         void Update () {
             transform.LookAt(target);
         }
     }
    

    您只需将此脚本分配给相机。 您可以在此处阅读更多相关信息:https://docs.unity3d.com/ScriptReference/Transform.LookAt.html 我无法测试代码,但它肯定可以工作。

    【讨论】:

    • 这不是我想要的,请阅读代码。 LookAt 只是改变了 instand 中的四元数,而我想要一个具有指定速度的平滑 lerp。
    • 您可以轻松地将输入向量 3 转换为 lookAt 函数。同样在您的问题中,您确切地询问了 Hambalko 的回答。
    【解决方案2】:
    public Camera cam; //You cam goes here
    public Transform target; //you target goes here 
    public void LookAtPosition(Transform lookPosition, float speed)
    {
        cam.transform.LookAt(target);
    }
    

    【讨论】:

    • 我不确定如何随着时间的推移添加东西,但这应该是您可以从中锻炼出来的帮助
    • Ok Cam = 场景中的相机
    • transform 是你要查看的对象 transform
    • cam.transfrom.lookat 让凸轮通过转身看目标
    猜你喜欢
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多