| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using UnityEngine;
- using System;
- namespace WXB
- {
- [RequireComponent(typeof(RectTransform))]
- [RequireComponent(typeof(CanvasRenderer))]
- [ExecuteInEditMode]
- public class RenderObject : MonoBehaviour
- {
- protected virtual void OnTransformParentChanged()
- {
- if (isActiveAndEnabled)
- return;
- UpdateRect();
- }
- protected void OnDisable()
- {
- if (m_CanvasRender == null)
- return;
- m_CanvasRender.Clear();
- }
- protected void Start()
- {
- UpdateRect();
- }
- RectTransform rect;
- [NonSerialized]
- private CanvasRenderer m_CanvasRender;
- public CanvasRenderer canvasRenderer
- {
- get
- {
- if (m_CanvasRender == null)
- m_CanvasRender = GetComponent<CanvasRenderer>();
- return m_CanvasRender;
- }
- }
- void UpdateRect()
- {
- if (rect == null)
- rect = GetComponent<RectTransform>();
- RectTransform parent = rect.parent as RectTransform;
- if (parent == null)
- return;
- rect.pivot = parent.pivot;
- rect.anchorMin = Vector2.zero;
- rect.anchorMax = Vector2.one;
- rect.offsetMax = Vector2.zero;
- rect.offsetMin = Vector2.zero;
- }
- public void FillMesh(Mesh workerMesh)
- {
- canvasRenderer.SetMesh(workerMesh);
- }
- public void UpdateMaterial(Material mat, Texture texture)
- {
- canvasRenderer.materialCount = 1;
- canvasRenderer.SetMaterial(mat, 0);
- canvasRenderer.SetTexture(texture);
- }
- }
- }
|