// 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(); // m_UI3DDisplayTouch = GetComponentInChildren(); // } // // // #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(); // 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().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); // } // } // } // }