update tool change prefabs
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
using UnityEditor;
|
||||
using UnityEditor.ShortcutManagement;
|
||||
using UnityEngine;
|
||||
|
||||
public static class PrefabApplyOverrideShortcut
|
||||
{
|
||||
private const string MenuPath = "Tools/Prefab/Apply Overrides %#a";
|
||||
|
||||
[MenuItem(MenuPath)]
|
||||
private static void ApplyOverridesFromSelection()
|
||||
{
|
||||
var selectedObjects = Selection.gameObjects;
|
||||
if (selectedObjects == null || selectedObjects.Length == 0)
|
||||
{
|
||||
Debug.LogWarning("No GameObject selected.");
|
||||
return;
|
||||
}
|
||||
|
||||
int appliedCount = 0;
|
||||
foreach (var selectedObject in selectedObjects)
|
||||
{
|
||||
if (selectedObject == null || !PrefabUtility.IsPartOfPrefabInstance(selectedObject))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var rootInstance = PrefabUtility.GetOutermostPrefabInstanceRoot(selectedObject);
|
||||
if (rootInstance == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
PrefabUtility.ApplyPrefabInstance(rootInstance, InteractionMode.UserAction);
|
||||
appliedCount++;
|
||||
}
|
||||
|
||||
if (appliedCount == 0)
|
||||
{
|
||||
Debug.LogWarning("Selected object(s) are not prefab instances.");
|
||||
return;
|
||||
}
|
||||
|
||||
Debug.Log($"Applied prefab overrides for {appliedCount} instance(s).");
|
||||
}
|
||||
|
||||
[MenuItem(MenuPath, true)]
|
||||
private static bool ValidateApplyOverridesFromSelection()
|
||||
{
|
||||
var selectedObjects = Selection.gameObjects;
|
||||
if (selectedObjects == null || selectedObjects.Length == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach (var selectedObject in selectedObjects)
|
||||
{
|
||||
if (selectedObject != null && PrefabUtility.IsPartOfPrefabInstance(selectedObject))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
[Shortcut("Prefab/Apply Overrides", KeyCode.A, ShortcutModifiers.Action | ShortcutModifiers.Shift)]
|
||||
private static void ApplyOverridesShortcut(ShortcutArguments _)
|
||||
{
|
||||
ApplyOverridesFromSelection();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5313c15fbb1e129438e9201a10ff2eda
|
||||
@@ -0,0 +1,293 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEditorInternal;
|
||||
using UnityEngine;
|
||||
|
||||
public class PrefabChildBatchCreatorWindow : EditorWindow
|
||||
{
|
||||
private readonly List<GameObject> _prefabs = new List<GameObject>();
|
||||
private string _childName = "NewChild";
|
||||
private bool _replaceIfExists = false;
|
||||
private bool _copyLayerAndTagFromParent = true;
|
||||
private bool _copyParentLocalScale = true;
|
||||
private bool _useCustomLocalPosition = true;
|
||||
private bool _useCustomLocalRotation = true;
|
||||
private Vector3 _childLocalPosition = Vector3.zero;
|
||||
private Vector3 _childLocalEulerRotation = Vector3.zero;
|
||||
private Vector2 _scroll;
|
||||
|
||||
[MenuItem("Tools/Prefabs/Batch Create Child")]
|
||||
public static void ShowWindow()
|
||||
{
|
||||
var window = GetWindow<PrefabChildBatchCreatorWindow>("Batch Child Creator");
|
||||
window.minSize = new Vector2(500f, 450f);
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
EditorGUILayout.LabelField("Batch Create Child For Prefabs", EditorStyles.boldLabel);
|
||||
EditorGUILayout.HelpBox(
|
||||
"Add multiple prefab assets below. The tool creates one child under each prefab root, then moves all root components to the child.",
|
||||
MessageType.Info);
|
||||
|
||||
DrawPrefabDropArea();
|
||||
DrawPrefabList();
|
||||
|
||||
EditorGUILayout.Space();
|
||||
EditorGUILayout.LabelField("Child Settings", EditorStyles.boldLabel);
|
||||
|
||||
_childName = EditorGUILayout.TextField("Child Name", _childName);
|
||||
_replaceIfExists = EditorGUILayout.ToggleLeft("Replace existing child with same name", _replaceIfExists);
|
||||
_copyLayerAndTagFromParent = EditorGUILayout.ToggleLeft("Copy parent layer/tag/static", _copyLayerAndTagFromParent);
|
||||
_copyParentLocalScale = EditorGUILayout.ToggleLeft("Copy parent local scale", _copyParentLocalScale);
|
||||
|
||||
EditorGUILayout.Space(4f);
|
||||
_useCustomLocalPosition = EditorGUILayout.ToggleLeft("Set custom local position", _useCustomLocalPosition);
|
||||
using (new EditorGUI.DisabledScope(!_useCustomLocalPosition))
|
||||
{
|
||||
_childLocalPosition = EditorGUILayout.Vector3Field("Local Position", _childLocalPosition);
|
||||
}
|
||||
|
||||
_useCustomLocalRotation = EditorGUILayout.ToggleLeft("Set custom local rotation", _useCustomLocalRotation);
|
||||
using (new EditorGUI.DisabledScope(!_useCustomLocalRotation))
|
||||
{
|
||||
_childLocalEulerRotation = EditorGUILayout.Vector3Field("Local Rotation (Euler)", _childLocalEulerRotation);
|
||||
}
|
||||
|
||||
EditorGUILayout.Space(12f);
|
||||
using (new EditorGUI.DisabledScope(_prefabs.Count == 0 || string.IsNullOrWhiteSpace(_childName)))
|
||||
{
|
||||
if (GUILayout.Button("Create Child For All Prefabs", GUILayout.Height(30f)))
|
||||
{
|
||||
CreateChildrenForPrefabs();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawPrefabDropArea()
|
||||
{
|
||||
Event evt = Event.current;
|
||||
Rect dropRect = GUILayoutUtility.GetRect(0f, 60f, GUILayout.ExpandWidth(true));
|
||||
GUI.Box(dropRect, "Drag Prefab Assets Here");
|
||||
|
||||
if (!dropRect.Contains(evt.mousePosition))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (evt.type == EventType.DragUpdated || evt.type == EventType.DragPerform)
|
||||
{
|
||||
DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
|
||||
if (evt.type == EventType.DragPerform)
|
||||
{
|
||||
DragAndDrop.AcceptDrag();
|
||||
foreach (Object obj in DragAndDrop.objectReferences)
|
||||
{
|
||||
TryAddPrefab(obj as GameObject);
|
||||
}
|
||||
}
|
||||
|
||||
evt.Use();
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawPrefabList()
|
||||
{
|
||||
EditorGUILayout.Space(4f);
|
||||
EditorGUILayout.LabelField($"Prefabs ({_prefabs.Count})", EditorStyles.boldLabel);
|
||||
|
||||
_scroll = EditorGUILayout.BeginScrollView(_scroll, GUILayout.Height(160f));
|
||||
int removeIndex = -1;
|
||||
|
||||
for (int i = 0; i < _prefabs.Count; i++)
|
||||
{
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
_prefabs[i] = (GameObject)EditorGUILayout.ObjectField(_prefabs[i], typeof(GameObject), false);
|
||||
if (GUILayout.Button("X", GUILayout.Width(28f)))
|
||||
{
|
||||
removeIndex = i;
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
}
|
||||
|
||||
if (removeIndex >= 0)
|
||||
{
|
||||
_prefabs.RemoveAt(removeIndex);
|
||||
}
|
||||
|
||||
EditorGUILayout.EndScrollView();
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
if (GUILayout.Button("Add Selected Prefabs"))
|
||||
{
|
||||
foreach (Object obj in Selection.objects)
|
||||
{
|
||||
TryAddPrefab(obj as GameObject);
|
||||
}
|
||||
}
|
||||
|
||||
if (GUILayout.Button("Clear List"))
|
||||
{
|
||||
_prefabs.Clear();
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
}
|
||||
|
||||
private void TryAddPrefab(GameObject prefab)
|
||||
{
|
||||
if (prefab == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
string path = AssetDatabase.GetAssetPath(prefab);
|
||||
if (string.IsNullOrEmpty(path))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (PrefabUtility.GetPrefabAssetType(prefab) == PrefabAssetType.NotAPrefab)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_prefabs.Contains(prefab))
|
||||
{
|
||||
_prefabs.Add(prefab);
|
||||
}
|
||||
}
|
||||
|
||||
private void CreateChildrenForPrefabs()
|
||||
{
|
||||
int successCount = 0;
|
||||
int failCount = 0;
|
||||
string childName = _childName.Trim();
|
||||
|
||||
foreach (GameObject prefab in _prefabs)
|
||||
{
|
||||
if (prefab == null)
|
||||
{
|
||||
failCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
string path = AssetDatabase.GetAssetPath(prefab);
|
||||
if (string.IsNullOrEmpty(path))
|
||||
{
|
||||
failCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
GameObject root = PrefabUtility.LoadPrefabContents(path);
|
||||
try
|
||||
{
|
||||
if (root == null)
|
||||
{
|
||||
failCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
Transform existing = root.transform.Find(childName);
|
||||
if (existing != null)
|
||||
{
|
||||
if (_replaceIfExists)
|
||||
{
|
||||
DestroyImmediate(existing.gameObject);
|
||||
}
|
||||
else
|
||||
{
|
||||
failCount++;
|
||||
Debug.LogWarning($"Skipped `{prefab.name}` because child `{childName}` already exists.");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
GameObject child = new GameObject(childName);
|
||||
child.transform.SetParent(root.transform, false);
|
||||
|
||||
if (_copyLayerAndTagFromParent)
|
||||
{
|
||||
child.layer = root.layer;
|
||||
child.tag = root.tag;
|
||||
GameObjectUtility.SetStaticEditorFlags(
|
||||
child,
|
||||
GameObjectUtility.GetStaticEditorFlags(root));
|
||||
}
|
||||
|
||||
if (_copyParentLocalScale)
|
||||
{
|
||||
child.transform.localScale = root.transform.localScale;
|
||||
}
|
||||
|
||||
if (_useCustomLocalPosition)
|
||||
{
|
||||
child.transform.localPosition = _childLocalPosition;
|
||||
}
|
||||
|
||||
if (_useCustomLocalRotation)
|
||||
{
|
||||
child.transform.localRotation = Quaternion.Euler(_childLocalEulerRotation);
|
||||
}
|
||||
|
||||
MoveAllComponentsFromParentToChild(root, child, prefab.name);
|
||||
|
||||
PrefabUtility.SaveAsPrefabAsset(root, path);
|
||||
successCount++;
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
failCount++;
|
||||
Debug.LogError($"Failed processing `{prefab.name}` at path `{path}`. Error: {ex.Message}");
|
||||
}
|
||||
finally
|
||||
{
|
||||
PrefabUtility.UnloadPrefabContents(root);
|
||||
}
|
||||
}
|
||||
|
||||
AssetDatabase.SaveAssets();
|
||||
AssetDatabase.Refresh();
|
||||
EditorUtility.DisplayDialog(
|
||||
"Batch Child Creator",
|
||||
$"Done.\nSuccess: {successCount}\nFailed/Skipped: {failCount}",
|
||||
"OK");
|
||||
}
|
||||
|
||||
private static void MoveAllComponentsFromParentToChild(GameObject parent, GameObject child, string prefabName)
|
||||
{
|
||||
var componentsToRemove = new List<Component>();
|
||||
Component[] parentComponents = parent.GetComponents<Component>();
|
||||
|
||||
foreach (Component component in parentComponents)
|
||||
{
|
||||
if (component == null || component is Transform)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
bool copied = ComponentUtility.CopyComponent(component);
|
||||
if (!copied)
|
||||
{
|
||||
Debug.LogWarning($"Could not copy component `{component.GetType().Name}` in prefab `{prefabName}`.");
|
||||
continue;
|
||||
}
|
||||
|
||||
bool pasted = ComponentUtility.PasteComponentAsNew(child);
|
||||
if (!pasted)
|
||||
{
|
||||
Debug.LogWarning($"Could not paste component `{component.GetType().Name}` into child in prefab `{prefabName}`.");
|
||||
continue;
|
||||
}
|
||||
|
||||
componentsToRemove.Add(component);
|
||||
}
|
||||
|
||||
foreach (Component component in componentsToRemove)
|
||||
{
|
||||
if (component != null)
|
||||
{
|
||||
Object.DestroyImmediate(component, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 806a1a1dc1294784881ad4308e58b1e1
|
||||
@@ -9,8 +9,6 @@ GameObject:
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1104867524497633025}
|
||||
- component: {fileID: 5657266836829354752}
|
||||
- component: {fileID: 5860347714460000696}
|
||||
m_Layer: 0
|
||||
m_Name: "\u63A3\u98CE\u4E4B\u77DB"
|
||||
m_TagString: Untagged
|
||||
@@ -26,28 +24,62 @@ Transform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 285550270365075957}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.86602545, y: 0, z: 0, w: 0.49999994}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Children:
|
||||
- {fileID: 2165398315552083949}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &7290546735285867978
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2165398315552083949}
|
||||
- component: {fileID: 2295362473509926262}
|
||||
- component: {fileID: 6231640915859052576}
|
||||
m_Layer: 0
|
||||
m_Name: Visuals
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2165398315552083949
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7290546735285867978}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.86602545, y: 0, z: 0, w: 0.49999994}
|
||||
m_LocalPosition: {x: 0, y: 1.38, z: 0.77}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1104867524497633025}
|
||||
m_LocalEulerAnglesHint: {x: 120, y: 0, z: 0}
|
||||
--- !u!33 &5657266836829354752
|
||||
--- !u!33 &2295362473509926262
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 285550270365075957}
|
||||
m_GameObject: {fileID: 7290546735285867978}
|
||||
m_Mesh: {fileID: 4300000, guid: 48e6d3d2c0c1e4b20a5d8efcd18a88ff, type: 2}
|
||||
--- !u!23 &5860347714460000696
|
||||
--- !u!23 &6231640915859052576
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 285550270365075957}
|
||||
m_GameObject: {fileID: 7290546735285867978}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4784735423801820817
|
||||
--- !u!1 &139938124384526895
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -8,46 +8,46 @@ GameObject:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6691621724556325783}
|
||||
- component: {fileID: 7480364715263698102}
|
||||
- component: {fileID: 7295731071253647233}
|
||||
- component: {fileID: 2483168018957211454}
|
||||
- component: {fileID: 3400312020946461207}
|
||||
- component: {fileID: 8905872949688982505}
|
||||
m_Layer: 0
|
||||
m_Name: "\u63A3\u98CE\u4E4B\u77DB\u6210\u957F"
|
||||
m_Name: Visuals
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6691621724556325783
|
||||
--- !u!4 &2483168018957211454
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4784735423801820817}
|
||||
m_GameObject: {fileID: 139938124384526895}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_Father: {fileID: 6691621724556325783}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &7480364715263698102
|
||||
--- !u!33 &3400312020946461207
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4784735423801820817}
|
||||
m_GameObject: {fileID: 139938124384526895}
|
||||
m_Mesh: {fileID: 4300000, guid: 48e6d3d2c0c1e4b20a5d8efcd18a88ff, type: 2}
|
||||
--- !u!23 &7295731071253647233
|
||||
--- !u!23 &8905872949688982505
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4784735423801820817}
|
||||
m_GameObject: {fileID: 139938124384526895}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
@@ -86,3 +86,35 @@ MeshRenderer:
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &4784735423801820817
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6691621724556325783}
|
||||
m_Layer: 0
|
||||
m_Name: "\u63A3\u98CE\u4E4B\u77DB\u6210\u957F"
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6691621724556325783
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4784735423801820817}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 2483168018957211454}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
|
||||
@@ -9,8 +9,6 @@ GameObject:
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2883756883361503683}
|
||||
- component: {fileID: 4741476720813344143}
|
||||
- component: {fileID: 8241229427580220958}
|
||||
m_Layer: 0
|
||||
m_Name: "\u63A3\u98CE\u4E4B\u77DB\u6781\u54C1"
|
||||
m_TagString: Untagged
|
||||
@@ -30,24 +28,58 @@ Transform:
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Children:
|
||||
- {fileID: 7071481149930127490}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &4741476720813344143
|
||||
--- !u!1 &4920277037521302336
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7071481149930127490}
|
||||
- component: {fileID: 4581653084234499189}
|
||||
- component: {fileID: 7826282017077798854}
|
||||
m_Layer: 0
|
||||
m_Name: Visuals
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &7071481149930127490
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4920277037521302336}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2883756883361503683}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &4581653084234499189
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1435714050475466025}
|
||||
m_GameObject: {fileID: 4920277037521302336}
|
||||
m_Mesh: {fileID: 4300000, guid: 48e6d3d2c0c1e4b20a5d8efcd18a88ff, type: 2}
|
||||
--- !u!23 &8241229427580220958
|
||||
--- !u!23 &7826282017077798854
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1435714050475466025}
|
||||
m_GameObject: {fileID: 4920277037521302336}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4351738867350916516
|
||||
--- !u!1 &1669030948137255037
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -8,46 +8,46 @@ GameObject:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4864711436467380195}
|
||||
- component: {fileID: 8602393969438771892}
|
||||
- component: {fileID: 7658895765030975757}
|
||||
- component: {fileID: 2010891848862894596}
|
||||
- component: {fileID: 2807964204614947098}
|
||||
- component: {fileID: 5034679566855837553}
|
||||
m_Layer: 0
|
||||
m_Name: "\u6D51\u94C1\u67AA\u6781\u54C1"
|
||||
m_Name: Visuals
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4864711436467380195
|
||||
--- !u!4 &2010891848862894596
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4351738867350916516}
|
||||
m_GameObject: {fileID: 1669030948137255037}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalPosition: {x: 0, y: 1.098, z: -0.231}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_Father: {fileID: 4864711436467380195}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &8602393969438771892
|
||||
--- !u!33 &2807964204614947098
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4351738867350916516}
|
||||
m_GameObject: {fileID: 1669030948137255037}
|
||||
m_Mesh: {fileID: 4300000, guid: 7d4ad266a648a4e1f866deb65272e273, type: 2}
|
||||
--- !u!23 &7658895765030975757
|
||||
--- !u!23 &5034679566855837553
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4351738867350916516}
|
||||
m_GameObject: {fileID: 1669030948137255037}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
@@ -86,3 +86,35 @@ MeshRenderer:
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &4351738867350916516
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4864711436467380195}
|
||||
m_Layer: 0
|
||||
m_Name: "\u6D51\u94C1\u67AA\u6781\u54C1"
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4864711436467380195
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4351738867350916516}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 2010891848862894596}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
|
||||
Reference in New Issue
Block a user