public virtual bool DidChange(EZScreenPlacement sp) { if (worldPos != sp.transform.position) { if (sp.allowTransformDrag) { // Calculate new screen position: sp.WorldToScreenPos(sp.transform.position); } else { sp.PositionOnScreen(); } return(true); } if (screenPos != sp.screenPos) { return(true); } if (renderCamera != null && (screenSize.x != sp.renderCamera.pixelWidth || screenSize.y != sp.renderCamera.pixelHeight)) { return(true); } if (!relativeTo.Equals(sp.relativeTo)) { return(true); } if (renderCamera != sp.renderCamera) { return(true); } if (relativeObject != sp.relativeObject) { #if UNITY_EDITOR // Remove ourselves as a dependent on the previous object: if (relativeObject != null) { EZScreenPlacement c = relativeObject.GetComponent <EZScreenPlacement>(); if (c != null) { c.RemoveDependent(sp); } } // Add ourselves as a dependent to the new object: if (sp.relativeObject != null) { EZScreenPlacement c = sp.relativeObject.GetComponent <EZScreenPlacement>(); if (c != null) { c.AddDependent(sp); } } #endif return(true); } return(false); }
public void OnDestroy() { if (relativeObject != null) { EZScreenPlacement c = relativeObject.GetComponent <EZScreenPlacement>(); if (c != null) { c.RemoveDependent(this); } } }
public virtual bool DidChange(EZScreenPlacement sp) { if (screenPos != sp.screenPos) { return(true); } if (!relativeTo.Equals(sp.relativeTo)) { return(true); } if (relativeObject != sp.relativeObject) { #if UNITY_EDITOR // Remove ourselves as a dependent on the previous object: if (relativeObject != null) { EZScreenPlacement c = relativeObject.GetComponent <EZScreenPlacement>(); if (c != null) { c.RemoveDependent(sp); } } // Add ourselves as a dependent to the new object: if (sp.relativeObject != null) { EZScreenPlacement c = sp.relativeObject.GetComponent <EZScreenPlacement>(); if (c != null) { c.AddDependent(sp); } } #endif return(true); } return(false); }