资讯动态

Unity一个动画控制器为何直接依赖另一个动画控制器

发布时间:2026/8/15 20:07:03 来源:尧图企业网站定制
直接去被依赖项的meta文件拷贝guid然后去依赖项的YAML里搜索结果是这个guid多次出现在AnimatorStateTransition模块。看不懂YAML于是把依赖别人的控制器复制一个把状态删一个打印一次依赖。然后删成默认状态机啥都不依赖了只依赖那个动画控制器。然后把控制器的层、参数、状态全删掉再建一个全新控制器对比它们的YAML。新建的控制器很干净%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!91 9100000 AnimatorController: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: New Animator Controller serializedVersion: 5 m_AnimatorParameters: [] m_AnimatorLayers: []被删空的控制器YAML则是%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!1101 -8043723507950298118 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: m_Conditions: - m_ConditionMode: 1 m_ConditionEvent: running m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: 5868839050235648224, guid: 06bf078c7d5187148b17f1e7918a9e99, type: 2} m_Solo: 0 m_Mute: 0 m_IsExit: 0 serializedVersion: 3 m_TransitionDuration: 0.25 m_TransitionOffset: 0 m_ExitTime: 0.9464286 m_HasExitTime: 0 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 --- !u!1101 -7986762334218738143 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: m_Conditions: - m_ConditionMode: 6 m_ConditionEvent: bodyStatus m_EventTreshold: 1 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: -4066937683750499412, guid: 06bf078c7d5187148b17f1e7918a9e99, type: 2} m_Solo: 0 m_Mute: 0 m_IsExit: 0 serializedVersion: 3 m_TransitionDuration: 0.25 m_TransitionOffset: 0 m_ExitTime: 0.89892185 m_HasExitTime: 0 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 --- !u!1101 -5474338561685204398 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: m_Conditions: - m_ConditionMode: 1 m_ConditionEvent: Jump m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: -9165411807507458709, guid: 06bf078c7d5187148b17f1e7918a9e99, type: 2} m_Solo: 0 m_Mute: 0 m_IsExit: 0 serializedVersion: 3 m_TransitionDuration: 0.068148136 m_TransitionOffset: 0 m_ExitTime: 0.89687735 m_HasExitTime: 0 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 --- !u!1101 -789983268425872304 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: m_Conditions: - m_ConditionMode: 1 m_ConditionEvent: TakeDrop m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: 3227172602469648728, guid: 06bf078c7d5187148b17f1e7918a9e99, type: 2} m_Solo: 0 m_Mute: 0 m_IsExit: 0 serializedVersion: 3 m_TransitionDuration: 0.25 m_TransitionOffset: 0 m_ExitTime: 0.89892185 m_HasExitTime: 0 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 --- !u!1101 -186031674231208760 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: m_Conditions: - m_ConditionMode: 6 m_ConditionEvent: bodyStatus m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: -1130861594894586152, guid: 06bf078c7d5187148b17f1e7918a9e99, type: 2} m_Solo: 0 m_Mute: 0 m_IsExit: 0 serializedVersion: 3 m_TransitionDuration: 0.25 m_TransitionOffset: 0 m_ExitTime: 0.89892185 m_HasExitTime: 0 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 --- !u!91 9100000 AnimatorController: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: NPC 1 serializedVersion: 5 m_AnimatorParameters: [] m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer m_StateMachine: {fileID: 50358232126170600} m_Mask: {fileID: 0} m_Motions: [] m_Behaviours: [] m_BlendingMode: 0 m_SyncedLayerIndex: -1 m_DefaultWeight: 0 m_IKPass: 0 m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} --- !u!1107 50358232126170600 AnimatorStateMachine: serializedVersion: 6 m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Base Layer m_ChildStates: [] m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] m_StateMachineTransitions: {} m_StateMachineBehaviours: [] m_AnyStatePosition: {x: 0, y: 30, z: 0} m_EntryPosition: {x: 120, y: 120, z: 0} m_ExitPosition: {x: 270, y: 50, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: 0} --- !u!1101 1116902853594775685 AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: m_Conditions: - m_ConditionMode: 3 m_ConditionEvent: gunStatus m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: -2272526421185388783, guid: 06bf078c7d5187148b17f1e7918a9e99, type: 2} m_Solo: 0 m_Mute: 0 m_IsExit: 0 serializedVersion: 3 m_TransitionDuration: 0.25 m_TransitionOffset: 0 m_ExitTime: 0.90909094 m_HasExitTime: 0 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1我能想到的解释就是这个控制器的一些状态和转换当初是从被依赖的直接复制出来的在序列化文件里它就是直接复制了这部分文本但是这样无效所以保存时序列化另外创建了转换对象这部分文本也没有删。这里m_ObjectHideFlags意思应该是这个对象已失效隐藏但是不删除。我看了被依赖控制器YAML的一个转换对象m_DstState字段根本没有guid所以可能是拷贝状态时转换对象进了新控制器添加了对原来目标状态的引用。AnimatorStateTransition: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: m_Conditions: - m_ConditionMode: 6 m_ConditionEvent: bodyStatus m_EventTreshold: 2 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: -5291231011926439337} m_Solo: 0 m_Mute: 0 m_IsExit: 0 serializedVersion: 3 m_TransitionDuration: 0.25 m_TransitionOffset: 0 m_ExitTime: 0.9493243 m_HasExitTime: 0 m_HasFixedDuration: 1 m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 --- !u!114 -9205196945450993477

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价