Unity3D自动匹配摄像机全方向公告板

项目需要在GUI上做一些特效,按道理应该是直接做2D序列帧动画,然后GUI播放的,但是介于美术实现的时间原因,决定用例子来做UI特效,但是目前遇到难题是GUI不能加载粒子。
所以决定运用公告板来虚拟一个UI,脚本代码如下:

FaceToCamera.cs

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
using UnityEngine;
using System.Collections;
using System;

public class FaceToCamera : MonoBehaviour
{
    public Camera _camera;
    public float _z = 5.0F;//纵深
    public float _x = 1.0F;//相对中心点x偏移
    public float _y = -1.0F;//相对中心点y偏移

    void Update()
    {

        _camera = Camera.current;//获取当前摄像机
        if (!_camera) return;

        transform.rotation = _camera.transform.rotation;//将对象角度与摄像机统一
        transform.position = _camera.transform.position;//将对象移动到摄像机当前位置

        transform.Translate(Vector3.forward * _z);//纵向推远,否则看不见
        transform.Translate(Vector3.right * _x);
        transform.Translate(Vector3.down * _y);

    }  
}

以上代码即可完成一个自动匹配摄像机的全方向公告板,即便摄像机来回切换Gameobject也会自动匹配上摄像机。唯一缺陷是该公告板不停刷新,可能会在某些极端情况下出现闪烁。

该Cube仅用于测试,此脚本适用于任意的Gameobject。

BeiTown
2012.12.19

本文链接:Unity3D自动匹配摄像机全方向公告板

转载声明:BeiTown原创,转载请注明来源:BeiTown's Coder 编码之源,谢谢


Tags: , , , ,

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>