当前位置:   article > 正文

Unity 使场景物体始终面向摄像机_unity 文本 面向摄像机

unity 文本 面向摄像机

这几天要写项目参加比赛,需要场景物体始终面向摄像机

查找资料后,发现了一个有趣的函数 :
public void LookAt(Vector3 worldPosition);

它的功能是:
Rotates the transform so the forward vector points at worldPosition.(旋转变换,使正向向量指向worldPosition)

也就是说,它可以使场景物体旋转自身,将正z轴指向参数所表示的那个点

这样一来,我们只需要在脚本的Update()函数里写上
transform.LookAt(摄像机对象.transform.position);
就可以使场景物体始终面向摄像机了

不过我不需要物体的Y轴跟着变,为此我给代码添加了一点“装饰”(^-^)V

最终成果是这样子的:

using UnityEngine;

/// <summary>
/// 挂在需要看向摄像机的场景物体上,使物体始终固定于某轴面向摄像机
/// </summary>
public class LookAtCamera : MonoBehaviour
{
    [Header("面向的摄像机Camera")]
    public Camera cameraToLookAt;
    [Header("选择需要固定的轴")]
    [Tooltip("可以自由选择固定不变的轴,常用的选泽是None或者Y")]
    public SelectXYZ selectXYZ = SelectXYZ.None;

    void Update()
    {
        //若cameraToLookAt为空,则自动选择主摄像机
        if (cameraToLookAt == null)
            cameraToLookAt = Camera.main;
            
        Vector3 vector3 = cameraToLookAt.transform.position - transform.position;
        switch (selectXYZ)
        {
            case SelectXYZ.x:
                vector3.y = vector3.z = 0.0f;
                break;
            case SelectXYZ.y:
                vector3.x = vector3.z = 0.0f;
                break;
            case SelectXYZ.z:
                vector3.x = vector3.y = 0.0f;
                break;
            case SelectXYZ.None:
                vector3.x = vector3.y = vector3.z = 0.0f;
                break;
        }

        transform.LookAt(cameraToLookAt.transform.position - vector3);
    }
}

public enum SelectXYZ
{
    x,
    y,
    z,
    None
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

在Unity里是这样子的:
在这里插入图片描述
固定轴建议选择NoneY

如果对你有帮助的话,点个赞吧 o(∩_∩)o

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号