protected void fetchRefs() { if (Application.isPlaying) { if (slots != null && slots.Length > 0) { return; } } //search for filled image Image[] imgs = HalperComponentsGenerics.getComponentsInChildren <Image>(transform); //Image[] imgs = transform.GetComponentsInChildren<Image>(); //only keep 'fill' type List <Image> tmp = new List <Image>(); for (int i = 0; i < imgs.Length; i++) { if (imgs[i].type == Image.Type.Filled) { tmp.Add(imgs[i]); } } slots = tmp.ToArray(); //Debug.Log("fetched " + renders.Length + " renders"); //for (int i = 0; i < renders.Length; i++) Debug.Log(" L " + renders[i].name, renders[i].transform); }
static public Transform getTransform <T>(Component comp) where T : Component { T t = HalperComponentsGenerics.getComponent <T>(comp); if (t != null) { return(t.transform); } return(null); }
static public void scaleRenderToBoxColliderBounds(Transform target, BoxCollider collider, float step) { step = Mathf.Abs(step); // just in case ... Renderer render = HalperComponentsGenerics.getComponent <Renderer>(target); float colSize = Vector3.Distance(collider.bounds.min, collider.bounds.max); float renderSize = 0f; bool doneGrowing = false; int safe = 100; Debug.Log(" >>>> <b>scaling " + target.name + "</b> <<<< ", target); while (safe > 0 && !doneGrowing) { renderSize = Vector3.Distance(render.bounds.min, render.bounds.max); float diff = colSize - renderSize; Debug.Log(" L step : " + step + " > diff " + diff); if (Mathf.Abs(diff) < step) { doneGrowing = true; continue; } float dir = Mathf.Sign(diff); Vector3 scaleStep = Vector3.one * step * dir; Debug.Log(" L scale step : " + scaleStep); Debug.Log(" L render scale (before) : " + target.localScale); target.localScale += scaleStep; Debug.Log(" L render scale (after) : " + target.localScale, target); Debug.Log(" L render bounds min : " + render.bounds.min); Debug.Log(" L render bounds max : " + render.bounds.max); //Debug.Log(" L (" + safe + ") " + render.name + " growing to " + render.transform.localScale); safe--; } if (safe <= 0) { Debug.LogError("safe!"); } Debug.Log(target.name + " is done growing in " + collider.name, target); }
protected override void fetchRenders() { _spriteRenderDefault = _t.GetComponent <SpriteRenderer>(); if (_spriteRenderDefault == null) { _spriteRenderDefault = _t.GetComponentInChildren <SpriteRenderer>(); } _spriteRenders = HalperComponentsGenerics.getComponents <SpriteRenderer>(_t); //Debug.Log(_t.name + " has x" + _spriteRenders.Length + " sprites", _t); }
static public void growScaleInBoxCollider(Transform target, BoxCollider collider, float step) { Renderer render = HalperComponentsGenerics.getComponent <Renderer>(target); int safe = 100; while (safe > 0 && collider.bounds.Contains(render.bounds.min) && collider.bounds.Contains(render.bounds.max)) { render.transform.localScale *= (1f + step); safe--; } if (safe <= 0) { Debug.LogError("safe!"); } Debug.Log(target.name + " is done growing in " + collider.name, target); }