110 lines
3.6 KiB
C#
110 lines
3.6 KiB
C#
![]() |
// using System;
|
||
|
// using Sirenix.OdinInspector;
|
||
|
// using UnityEngine;
|
||
|
// using UnityEngine.UI;
|
||
|
//
|
||
|
// namespace AlicizaX.UI.Extension
|
||
|
// {
|
||
|
// [RequireComponent(typeof(RawImage))]
|
||
|
// public class UI3DDisplay : MonoBehaviour
|
||
|
// {
|
||
|
// private Camera m_Camera;
|
||
|
// private GameObject m_ShowObject;
|
||
|
// private RenderTexture m_ShowTexure;
|
||
|
// private UI3DDisplayTouch m_UI3DDisplayTouch;
|
||
|
//
|
||
|
// private RawImage m_ShowImage;
|
||
|
//
|
||
|
// [ReadOnly]
|
||
|
// [SerializeField]
|
||
|
// private int m_ResolutionX = 512;
|
||
|
//
|
||
|
// [SerializeField]
|
||
|
// [ReadOnly]
|
||
|
// private int m_ResolutionY = 512;
|
||
|
//
|
||
|
// private readonly int m_RenderTextureDepthBuffer = 16;
|
||
|
//
|
||
|
// void Awake()
|
||
|
// {
|
||
|
// UI3DDisplayHelper.UI3DDisplayHandler = this;
|
||
|
// m_ShowImage = GetComponent<RawImage>();
|
||
|
// m_UI3DDisplayTouch = GetComponentInChildren<UI3DDisplayTouch>();
|
||
|
// }
|
||
|
//
|
||
|
//
|
||
|
// #if UNITY_EDITOR
|
||
|
//
|
||
|
//
|
||
|
// [SerializeField] [Header("分辨率")] [OnValueChanged("OnEditResolutionChanged")]
|
||
|
// private int EditResolution = 512;
|
||
|
//
|
||
|
// private void OnEditResolutionChanged()
|
||
|
// {
|
||
|
// if (!getPlayingState) return;
|
||
|
// m_ResolutionX = EditResolution;
|
||
|
// m_ResolutionY = EditResolution;
|
||
|
// var rect = transform.GetComponent<RectTransform>();
|
||
|
// if (Math.Abs(rect.sizeDelta.x - m_ResolutionX) > 0.01f ||
|
||
|
// Math.Abs(rect.sizeDelta.y - m_ResolutionY) > 0.01f)
|
||
|
// rect.sizeDelta = new Vector2(m_ResolutionX, m_ResolutionY);
|
||
|
// }
|
||
|
//
|
||
|
//
|
||
|
// [ShowIf("getPlayingState")] [SerializeField]
|
||
|
// GameObject previewPrefab;
|
||
|
//
|
||
|
// [ShowIf("getPlayingState")] [SerializeField]
|
||
|
// Camera previewCamera;
|
||
|
//
|
||
|
// bool getPlayingState => !Application.isPlaying;
|
||
|
//
|
||
|
// [Sirenix.OdinInspector.Button("预览")]
|
||
|
// private void Preview()
|
||
|
// {
|
||
|
// if (m_ShowObject != null)
|
||
|
// {
|
||
|
// UnityEngine.Object.DestroyImmediate(m_ShowObject);
|
||
|
// }
|
||
|
//
|
||
|
// m_ShowObject = UnityEngine.Object.Instantiate(previewPrefab);
|
||
|
// m_Camera = previewCamera;
|
||
|
// if (m_ShowTexure != null)
|
||
|
// {
|
||
|
// RenderTexture.ReleaseTemporary(m_ShowTexure);
|
||
|
// }
|
||
|
//
|
||
|
// m_ShowTexure = RenderTexture.GetTemporary(m_ResolutionX, m_ResolutionY, m_RenderTextureDepthBuffer);
|
||
|
// m_ShowObject.SetLayerRecursively(LayerDefine.UI3DObject);
|
||
|
// m_Camera.targetTexture = m_ShowTexure;
|
||
|
// GetComponent<RawImage>().texture = m_ShowTexure;
|
||
|
// }
|
||
|
// #endif
|
||
|
//
|
||
|
// public void SetUp(GameObject obj)
|
||
|
// {
|
||
|
// m_ShowObject = obj;
|
||
|
// m_Camera = CameraManaer.Instance.UI3DRenderCamera;
|
||
|
// if (m_ShowTexure != null)
|
||
|
// {
|
||
|
// RenderTexture.ReleaseTemporary(m_ShowTexure);
|
||
|
// }
|
||
|
//
|
||
|
// m_ShowTexure = RenderTexture.GetTemporary(m_ResolutionX, m_ResolutionY, m_RenderTextureDepthBuffer);
|
||
|
// m_ShowObject.SetLayerRecursively(LayerDefine.UI3DObject);
|
||
|
// m_Camera.targetTexture = m_ShowTexure;
|
||
|
// m_ShowImage.texture = m_ShowTexure;
|
||
|
// m_UI3DDisplayTouch.SetObject(m_ShowObject);
|
||
|
// }
|
||
|
//
|
||
|
// void OnDestroy()
|
||
|
// {
|
||
|
// m_UI3DDisplayTouch.Disopose();
|
||
|
// if (m_ShowTexure != null)
|
||
|
// {
|
||
|
// RenderTexture.ReleaseTemporary(m_ShowTexure);
|
||
|
// }
|
||
|
// }
|
||
|
// }
|
||
|
// }
|