如何统一按下按钮和 运行 动画(无需点击,只需按下)
How to Pressed button and run animacion in unity (NO CLICK, JUST Pressed)
ON 按下按钮 运行 动画
See image
你的问题不是很清楚,但我想你想:
- 按下鼠标按钮时启动动画
- 松开鼠标按钮时停止动画
您可以使用 Event Trigger 这样做。这是在代码中执行此操作的示例:
// Drag & Drop the button into the inspector
public Button button ;
// Drag & Drop your animator into the inspector
public Animator animator ;
void Start( )
{
EventTrigger eventTrigger = button.AddComponent<EventTrigger>( );
// Detect when mouse button is pressed down
EventTrigger.Entry pointerDownEntry = new EventTrigger.Entry( );
pointerDownEntry.eventID = EventTriggerType.PointerDown;
pointerDownEntry.callback.AddListener( ( data ) => { OnPointerDown( (PointerEventData)data ); } );
eventTrigger.triggers.Add( pointerDownEntry );
// Detect when mouse button is released
EventTrigger.Entry pointerUpEntry = new EventTrigger.Entry( );
pointerUpEntry.eventID = EventTriggerType.PointerDown;
pointerUpEntry.callback.AddListener( ( data ) => { OnPointerUp( (PointerEventData)data ); } );
eventTrigger.triggers.Add( pointerUpEntry );
}
public void OnPointerDown( PointerEventData data )
{
Debug.Log( "OnPointerDown called." );
// Stop your animation, supposing you have a bool parameter in your animator
animator.SetBool("boolName", true);
}
public void OnPointerUp( PointerEventData data )
{
Debug.Log( "OnPointerUp called." );
// Stop your animation, supposing you have a bool parameter in your animator
animator.SetBool("boolName", false);
}
ON 按下按钮 运行 动画
See image
你的问题不是很清楚,但我想你想:
- 按下鼠标按钮时启动动画
- 松开鼠标按钮时停止动画
您可以使用 Event Trigger 这样做。这是在代码中执行此操作的示例:
// Drag & Drop the button into the inspector
public Button button ;
// Drag & Drop your animator into the inspector
public Animator animator ;
void Start( )
{
EventTrigger eventTrigger = button.AddComponent<EventTrigger>( );
// Detect when mouse button is pressed down
EventTrigger.Entry pointerDownEntry = new EventTrigger.Entry( );
pointerDownEntry.eventID = EventTriggerType.PointerDown;
pointerDownEntry.callback.AddListener( ( data ) => { OnPointerDown( (PointerEventData)data ); } );
eventTrigger.triggers.Add( pointerDownEntry );
// Detect when mouse button is released
EventTrigger.Entry pointerUpEntry = new EventTrigger.Entry( );
pointerUpEntry.eventID = EventTriggerType.PointerDown;
pointerUpEntry.callback.AddListener( ( data ) => { OnPointerUp( (PointerEventData)data ); } );
eventTrigger.triggers.Add( pointerUpEntry );
}
public void OnPointerDown( PointerEventData data )
{
Debug.Log( "OnPointerDown called." );
// Stop your animation, supposing you have a bool parameter in your animator
animator.SetBool("boolName", true);
}
public void OnPointerUp( PointerEventData data )
{
Debug.Log( "OnPointerUp called." );
// Stop your animation, supposing you have a bool parameter in your animator
animator.SetBool("boolName", false);
}