using System; using System.Collections; using System.Collections.Generic; using UnityEngine; [ExecuteInEditMode] public class IsoObject : MonoBehaviour { public List<MeshRenderer> IsoMeshes; private IsoEditor isoEditor; private void OnEnable() { isoEditor = FindObjectOfType<IsoEditor>(); Camera.onPreRender += PreRender; } private void PreRender(Camera cam) { //Debug.Log(cam.GetInstanceID()); if (cam.orthographic && isoEditor.IsoMode) { Vector3 viewPos = cam.WorldToViewportPoint(gameObject.transform.position); foreach (MeshRenderer mr in IsoMeshes) { mr.sharedMaterial.SetVector("_CenterPoint", new Vector4(viewPos.x, viewPos.y)); } } } private void OnDisable() { Camera.onPreRender -= PreRender; } // Update is called once per frame void Update () { } }