您的位置:首页 > 产品设计 > UI/UE

渲染物体到一张UITexture上

2015-06-23 10:12 573 查看
把这个脚本挂到一个Camera上

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(Camera))]
public class UIModelCamera : MonoBehaviour {

//Render Texture属性
public int Width=256;
public int Height = 256;
public int Depth = 16;

//所要观看的模型
public GameObject Model;

//距离模型所在位置的偏移
public Vector3 Offset;

//观看模型所在位置的偏移
public Vector3 LookAtOffset;

//哪个UITexture要使用这个相机所渲染的Render Texture
public UITexture Texture;

private RenderTexture mRenderTexture;
private Camera mCamera;

void Awake()
{
mCamera = gameObject.GetComponent<Camera>();
mRenderTexture = new RenderTexture(Width, Height, Depth);
mCamera.targetTexture = mRenderTexture;
}
// Use this for initialization
void Start () {

SetModel(Model);
SetTexture(Texture);
}

void OnDestroy()
{
Destroy(mRenderTexture);
}

//设置所有观看的模型
public void SetModel(GameObject obj)
{
Model = obj;
if(null!=Model)
{
gameObject.transform.position = Model.transform.position + Offset;
gameObject.transform.forward = Model.transform.position + LookAtOffset - gameObject.transform.position;
mCamera.cullingMask = 1<<Model.layer;
}
}

//
public void SetTexture(UITexture texture)
{
Texture = texture;
if (null != Texture)
{
Texture.mainTexture = GetRenderTexture();
}
}

public RenderTexture GetRenderTexture()
{
return mRenderTexture;
}

#if UNITY_EDITOR
void Update()
{
SetModel(Model);
SetTexture(Texture);
}
#endif
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: