コード例 #1
0
 private void onAfterManipulatableObjectReParented(Transform newParent, GameObject obj)
 {
     ObjectManipulator.SetUniqueGameObjectName(obj, newParent);
     UpdateLayoutForManipulatableObject(newParent, obj.GetComponent <ManipulatableObject>());
     foreach (Transform item in obj.transform)
     {
         ManipulatableObject component = item.GetComponent <ManipulatableObject>();
         if (component != null)
         {
             component.SetParent(component.transform.parent);
         }
     }
 }
コード例 #2
0
        private DecorationLayoutData UpdateLayoutForManipulatableObject(Transform newParent, ManipulatableObject mo)
        {
            string pathId = mo.PathId;

            if (newParent != mo.transform.parent)
            {
                ObjectManipulator.SetUniqueGameObjectName(mo.gameObject, newParent);
            }
            DecorationLayoutData decorationLayoutData = default(DecorationLayoutData);

            decorationLayoutData.Id.Name       = mo.gameObject.name;
            decorationLayoutData.Id.ParentPath = GetRelativeGameObjectPath(newParent.gameObject);
            decorationLayoutData.DefinitionId  = mo.DefinitionId;
            decorationLayoutData.Type          = mo.Type;
            decorationLayoutData.Position      = mo.gameObject.transform.localPosition;
            decorationLayoutData.Rotation      = mo.gameObject.transform.localRotation;
            decorationLayoutData.UniformScale  = mo.gameObject.transform.localScale.x;
            DecorationLayoutData data = decorationLayoutData;

            if (data.Id.ParentPath == "")
            {
                data.Position      = mo.gameObject.transform.position;
                data.Rotation      = mo.gameObject.transform.rotation;
                data.UniformScale  = mo.gameObject.transform.lossyScale.x;
                data.Id.ParentPath = null;
            }
            SetCustomPropertiesInDecoration(ref data, mo.GetComponent <PartneredObject>());
            if (SceneLayoutData.ContainsKey(pathId))
            {
                SceneLayoutData.UpdateDecoration(pathId, data);
            }
            else
            {
                SceneLayoutData.AddDecoration(data);
            }
            return(data);
        }