rpg游戏中的角色面板中都会有角色的图像,且角色换装备后,图像也会有相应的变化。
如何实现这个功能呢?
假如用NGUI中的2D相机来绘制UI,用3D相机来绘制角色,然后两个相机叠加!这样会出现遮挡问题。因为UI中的有些组件在角色前面,有些组件在角色后面!
最简单的方法就是用RenderTexture。
1、Camera中有一个选项是TargetTexture。在运行时动态生成一个RenderTexture,然后赋值个这个变量。这样这个相机就会将所有拍的东西渲染到这个Texture上了。
2、在UI中新建一个UITexture。UITexture中有一个mainTexture变量。把1中渲染出的纹理赋值给此变量,这样就完成了角色渲染了。
代码如下:
// 3D相机
void Awake()
{
camera.targetTexture = new RenderTexture(512, 1024, 8, RenderTextureFormat.ARGB32);
}
// UI显示
void Start () {
textues.mainTexture = RenderCamera.Instance.camera.targetTexture;
}
so easy!!!