private void DettachChild(FixTransform child) { if (!children.Contains(child)) { Log.Error("FixTransfrom.DettachChild: not a child."); return; } children.Remove(child); child.parent = null; }
private void AttachChild(FixTransform child) { if (children.Contains(child)) { Log.Error("FixTransfrom.AttachChild: repeated child."); return; } children.Add(child); child.parent = this; }
private void UpdateChildrenPosition(FixTransform trans, Int3 delta) { _TryRefreshChildren(trans); int count = trans.children.Count; for (int i = 0; i < count; ++i) { FixTransform child = trans.children[i]; child.position = child.position + delta; } }
public void SetParent(FixTransform tran) { if (parent != null) { parent.DettachChild(this); } if (tran != null) { tran.AttachChild(this); } }
private void _TryRefreshChildren(FixTransform trans) { int childrenCount = trans.children.Count; if (childrenCount != trans.transform.childCount) { for (int i = 0; i < trans.transform.childCount; ++i) { FixTransform fixChild = trans.transform.GetChild(i).GetComponent <FixTransform>(); if (fixChild != null && !children.Contains(fixChild)) { children.Add(fixChild); fixChild.parent = this; } } } }
void Start() { FixTransform prt = transform_u3d.parent.GetComponent <FixTransform>(); SetParent(prt); }