Unity3D学习之(NPC头顶文字的实现)

来源:互联网 发布:淘宝红人模特排行照片 编辑:程序博客网 时间:2024/04/24 15:35

欢迎大家光临我的博客

 

欢迎来到unity学习unity培训unity企业培训教育专区,这里有很多U3D资源U3D培训视频U3D教程U3D常见问题U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。

 

今天介绍一个NPC的实现:

 

效果图:

 

 

代码如下:

//主摄像机对象

    private Camera camera;

    //NPC名称

    private string name = "奥莉";

    //NPC模型高度

    private float npcHeight; 

    void Start()

    {

        camera = Camera.main;

        //得到模型原始高度

        float size_y = collider.bounds.size.y;

        //得到模型缩放比例

        float scal_y = transform.localScale.y;

        //NPC模型高度

        npcHeight = (size_y * scal_y);

    }

    void OnGUI()

    {

        //得到NPC头顶在3D世界中的坐标

        //默认NPC坐标点在脚底下,所以这里加上npcHeight它模型的高度即可

        Vector3 worldPosition = new Vector3(transform.position.x, transform.position.y + npcHeight, transform.position.z);

        //根据NPC头顶的3D坐标换算成它在2D屏幕中的坐标

        Vector2 position = camera.WorldToScreenPoint(worldPosition);

        //得到真实NPC头顶的2D坐标

        position = new Vector2(position.x, Screen.height - position.y);

        //计算NPC名称的宽高

        Vector2 nameSize = GUI.skin.label.CalcSize(new GUIContent(name));

        //设置显示颜色为黄色

        GUI.color = Color.yellow;

        //绘制NPC名称

        GUI.Label(new Rect(position.x - (nameSize.x / 2), position.y - nameSize.y, nameSize.x, nameSize.y), name);

    }

}

 

更多精彩请点击:http://unity.gopedu.com/

 

0 0