Beispiel #1
0
 public void SetNode(Transform node)
 {
     if (ExportToJson.IsPrefabAsset(node, true))
     {
         string     path = PrefabUtility.GetPrefabAssetPathOfNearestInstanceRoot(node);
         GameObject go   = AssetDatabase.LoadAssetAtPath <GameObject>(path);
         prefabName = go.name;
         //获取差异数据
         Transform _node = go.transform;
         if (_node.childCount > 0)
         {
             differ = new Differ();
             for (int i = 0; i < _node.childCount; i++)
             {
                 if (differ.child == null)
                 {
                     differ.child = new List <Differ>();
                 }
                 Transform tmp     = _node.GetChild(i);
                 Transform _tmp    = node.GetChild(i);
                 Differ    _differ = Differ.getDiffer(tmp, _tmp, i);
                 if (_differ != null)
                 {
                     differ.child.Add(_differ);
                 }
             }
             if (differ.child == null || differ.child.Count == 0)
             {
                 differ = null;
             }
         }
         return;
     }
     nodeTran = node;
     for (int i = 0; i < nodeTran.childCount; i++)
     {
         Transform tmp = nodeTran.GetChild(i);
         if (child == null)
         {
             child = new List <Child>();
         }
         child.Add(ExportToJson.SetChild(tmp));
     }
 }
Beispiel #2
0
        public static Differ getDifferValue(Transform node, Transform _node, int i)
        {
            //获取差异
            Differ _differ = new Differ();

            _differ.index = i;
            Vector3 v3;
            bool    ifNull = false;

            //
            v3 = _node.localPosition - node.localPosition;
            if (v3.magnitude > 0)
            {
                ifNull           = true;
                _differ.position = ExportToJson.calcValue(-v3.x) + "," + ExportToJson.calcValue(v3.y) + "," + ExportToJson.calcValue(v3.z);
            }
            v3 = _node.localRotation.eulerAngles - node.localRotation.eulerAngles;
            if (v3.magnitude > 0)
            {
                ifNull        = true;
                _differ.euler = ExportToJson.calcValue(v3.x) + "," + ExportToJson.calcValue(-v3.y) + "," + ExportToJson.calcValue(-v3.z);
            }
            v3 = _node.localScale - node.localScale;
            if (v3.magnitude > 0)
            {
                ifNull        = true;
                _differ.scale = ExportToJson.calcValue(v3.x) + "," + ExportToJson.calcValue(v3.y) + "," + ExportToJson.calcValue(v3.z);
            }
            if (ifNull)
            {
                return(_differ);
            }
            else
            {
                return(null);
            }
        }