Ejemplo n.º 1
0
 private void DettachChild(FixTransform child)
 {
     if (!children.Contains(child))
     {
         Log.Error("FixTransfrom.DettachChild: not a child.");
         return;
     }
     children.Remove(child);
     child.parent = null;
 }
Ejemplo n.º 2
0
 private void AttachChild(FixTransform child)
 {
     if (children.Contains(child))
     {
         Log.Error("FixTransfrom.AttachChild: repeated child.");
         return;
     }
     children.Add(child);
     child.parent = this;
 }
Ejemplo n.º 3
0
    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;
        }
    }
Ejemplo n.º 4
0
 public void SetParent(FixTransform tran)
 {
     if (parent != null)
     {
         parent.DettachChild(this);
     }
     if (tran != null)
     {
         tran.AttachChild(this);
     }
 }
Ejemplo n.º 5
0
    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;
                }
            }
        }
    }
Ejemplo n.º 6
0
    void Start()
    {
        FixTransform prt = transform_u3d.parent.GetComponent <FixTransform>();

        SetParent(prt);
    }