オブジェクトをUItextureにレンダリング
4953 ワード
このスクリプトをカメラに掛けます
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
}