Exemple #1
0
        private Transform GetOrSetCopyBone(Transform root, Transform fromBone)
        {
            Transform result;

            if (this.fromToBoneDic.ContainsKey(fromBone))
            {
                result = this.fromToBoneDic[fromBone];
            }
            else if (fromBone.parent == null)
            {
                result = null;
            }
            else
            {
                BoneRendererAssist component;
                if (this.fromToBoneDic.ContainsKey(fromBone.parent))
                {
                    component = this.fromToBoneDic[fromBone.parent].GetComponent <BoneRendererAssist>();
                    if (this.parentChildDic.ContainsKey(fromBone.name))
                    {
                        string    name       = this.parentChildDic[fromBone.name];
                        Transform transform2 = CMT.SearchObjName(root.transform, name, false);
                        if (transform2)
                        {
                            component = this.GetOrSetCopyBone(root, transform2).GetComponent <BoneRendererAssist>();
                        }
                    }
                }
                else
                {
                    Transform transform3 = this.GetOrSetCopyBone(root, fromBone.parent);
                    if (transform3 == null)
                    {
                        return(null);
                    }
                    component = transform3.GetComponent <BoneRendererAssist>();
                }
                Transform transform4 = new GameObject().transform;
                transform4.name = fromBone.name;
                this.copyBoneList.Add(transform4);
                this.fromToBoneDic.Add(fromBone, transform4);
                this.toFromBoneDic.Add(transform4, fromBone);
                transform4.parent = this.boneRendererRoot;
                CopyTransform copyTransform = transform4.gameObject.AddComponent <CopyTransform>();
                copyTransform.bScl = false;
                copyTransform.SetTarget(this.toFromBoneDic[transform4]);
                BoneRendererAssist boneRendererAssist = transform4.gameObject.AddComponent <BoneRendererAssist>();
                boneRendererAssist.SetSelectable(this.selectable);
                if (component)
                {
                    boneRendererAssist.SetParent(component);
                    if (this.firstChildDic.ContainsKey(transform4.name) && this.firstChildDic[transform4.name] == component.transform.name)
                    {
                        component.SetFirstChild(boneRendererAssist);
                    }
                    else
                    {
                        component.SetChild(boneRendererAssist);
                    }
                }
                if (this.boneDisplay == BoneDisplay.Visible)
                {
                    boneRendererAssist.SetVisible(this.JudgeVisibleBone(boneRendererAssist));
                }
                else
                {
                    boneRendererAssist.SetVisible(false);
                }
                boneRendererAssist.SetColor(Setting.normalBoneColor.GetValue());
                this.braList.Add(boneRendererAssist);
                result = transform4;
            }
            return(result);
        }