void UpdateAnchor() { // rewriting anchor objects to make them easy accessible var anchor = MadTransform.FindParent<MadAnchor>(transform, 1); if (anchor != null) { anchorObject = anchor.anchorObject; anchorCamera = anchor.anchorCamera; } }
// updates information about this bar position // this method is quite heavy, but it will only execute in editor and when application is not playing private void UpdatePanelInfo() { if (panel != null && Application.isEditor && !Application.isPlaying) { var topPanel = MadTransform.FindParent<MadPanel>(transform); bool nowUnderThePanel = topPanel == panel; underThePanel = nowUnderThePanel; } }
static Transform ActiveParentOrPanel() { Transform parentTransform = null; var transforms = Selection.transforms; if (transforms.Length > 0) { var firstTransform = transforms[0]; if (MadTransform.FindParent<MadPanel>(firstTransform) != null) { parentTransform = firstTransform; } } if (parentTransform == null) { var panel = MadPanel.UniqueOrNull(); if (panel != null) { parentTransform = panel.transform; } } return parentTransform; }
private void ReconnectPanelIfNeeded(bool firstTime) { if (panel == null) { panel = MadPanel.FirstOrNull(transform); if (panel == null && firstTime) { Debug.LogError("You have to initialize scene first! Please execute Tools -> Energy Bar Toolkit -> Initialize"); } else { // check if now I am under the panel var topPanel = MadTransform.FindParent<MadPanel>(transform); bool nowUnderThePanel = topPanel == panel; // new scale should be applied if location of bar relative to panel has changed if (nowUnderThePanel && !underThePanel) { // now is under the panel, but wasn't before transform.localScale /= panel.transform.lossyScale.x; } else if (!nowUnderThePanel && underThePanel) { // was under the panel before, now it isn't transform.localScale *= panel.transform.lossyScale.x; } underThePanel = nowUnderThePanel; } } }
protected MadAnchor GetAnchor() { return(MadTransform.FindParent <MadAnchor>(energyBarBase.transform, 0)); }