2021-04-19 03:49:55 +00:00
// Copyright (c) .NET Foundation and Contributors (https://dotnetfoundation.org/ & https://stride3d.net) and Silicon Studio Corp. (https://www.siliconstudio.co.jp)
2018-06-19 09:06:54 +00:00
// Distributed under the MIT license. See the LICENSE.md file in the project root for more information.
using System ;
2020-04-14 14:37:41 +00:00
using Stride.Engine ;
using Stride.Graphics ;
using Stride.UI ;
using Stride.UI.Controls ;
using Stride.UI.Panels ;
2018-06-19 09:06:54 +00:00
namespace ParticlesSample
{
public class UIScript : StartupScript
{
public Entity Knight ;
public SpriteFont Font ;
public override void Start ( )
{
base . Start ( ) ;
// Setup the UI
Entity . Get < UIComponent > ( ) . Page . RootElement = new StackPanel
{
Orientation = Orientation . Vertical ,
HorizontalAlignment = HorizontalAlignment . Right ,
Margin = new Thickness ( 0 , 10 , 20 , 0 ) ,
Children = { CreateButton ( "Idle" ) , CreateButton ( "Run" ) }
} ;
// Set the default animation
Knight . Get < AnimationComponent > ( ) . Play ( "Run" ) ;
}
/// <summary>
/// Create a button and link the click action to the corresponding animation.
/// </summary>
private Button CreateButton ( string animationName )
{
var idleButton = new Button
{
Content = new TextBlock
{
Text = "Play " + animationName ,
Font = Font ,
} ,
Padding = new Thickness ( 10 , 10 , 10 , 10 ) ,
Margin = new Thickness ( 0 , 0 , 0 , 10 ) ,
} ;
idleButton . Click + = ( s , e ) = > Knight . Get < AnimationComponent > ( ) . Crossfade ( animationName , TimeSpan . FromSeconds ( 0.1 ) ) ;
return idleButton ;
}
}
}