When I use the SkeletonMecanim component to control the spine state, I encounter a problem. There are two identical nodes (spine), one can listen to events and the other cannot. I found that the one that can be listened to is the one I dragged manually into the editor. The other one was placed by Ctrl+D, and the latter cannot be listened to. I further checked the controller serialization file and found that the node generated by Ctrl+D will generate a new AnimationClip with a new fileID. It is not associated with the automatically generated animation inside the Controller. So it is impossible to listen to the events sent by Spine. My current solution is to use manual drag and drop.

    Related Discussions
    ...

    duanxian0621 There are two identical nodes (spine), one can listen to events and the other cannot.

    What do you mean by "two identical nodes (spine)"? Do you mean two SkeletonMecanim GameObjects? Or do you mean two state nodes in the Animator window in your AnimationController asset? Please always describe the situation as precisely as possible with steps how to reproduce the issue, and share screenshots where possible as well.

    one can listen to events and the other cannot.

    What do you mean by "one can listen"? What code are you using to receive animation events?

    duanxian0621 I further checked the controller serialization file and found that the node generated by Ctrl+D will generate a new AnimationClip with a new fileID.

    What did you duplicate via CTRL+D, a state in the Animator window? Why would a new AnimationClip be generated when you duplicate a state? This sounds very strange.

    In general, the SkeletonMecanim Events section applies for handling events with SkeletonMecanim.