68 lines
2.8 KiB
C#
68 lines
2.8 KiB
C#
// Animancer // https://kybernetik.com.au/animancer // Copyright 2021 Kybernetik //
|
|
|
|
#pragma warning disable CS0649 // Field is never assigned to, and will always have its default value.
|
|
|
|
using Animancer.Units;
|
|
using System;
|
|
using UnityEngine;
|
|
|
|
namespace Animancer.Examples.StateMachines.GameManager
|
|
{
|
|
/// https://kybernetik.com.au/animancer/api/Animancer.Examples.StateMachines.GameManager/GameManagerFSM
|
|
///
|
|
partial class GameManagerFSM
|
|
{
|
|
/************************************************************************************************************************/
|
|
|
|
[SerializeField] private IntroductionState _Introduction;
|
|
|
|
/************************************************************************************************************************/
|
|
|
|
/// <summary>Camera orbiting the player, waiting for the player to click.</summary>
|
|
/// https://kybernetik.com.au/animancer/api/Animancer.Examples.StateMachines.GameManager/IntroductionState
|
|
///
|
|
[Serializable]
|
|
public sealed class IntroductionState : State
|
|
{
|
|
/************************************************************************************************************************/
|
|
|
|
[SerializeField, DegreesPerSecond] private float _OrbitSpeed = 45;
|
|
[SerializeField, Meters] private float _OrbitRadius = 3;
|
|
|
|
/************************************************************************************************************************/
|
|
|
|
public override string DisplayText => "Welcome to the Game Manager example\nClick to start playing";
|
|
|
|
/************************************************************************************************************************/
|
|
|
|
public override void OnEnterState()
|
|
{
|
|
base.OnEnterState();
|
|
Instance._Golfer.EndSwing();
|
|
}
|
|
|
|
/************************************************************************************************************************/
|
|
|
|
public override void Update()
|
|
{
|
|
var camera = Instance._Camera;
|
|
|
|
var euler = camera.eulerAngles;
|
|
euler.y += _OrbitSpeed * Time.deltaTime;
|
|
camera.eulerAngles = euler;
|
|
|
|
var lookAt = Instance._Golfer.transform.position;
|
|
lookAt.y += 1;
|
|
camera.position = lookAt - camera.forward * _OrbitRadius;
|
|
|
|
if (Input.GetMouseButtonUp(0))
|
|
Instance.StateMachine.TrySetState(Instance._Ready);
|
|
}
|
|
|
|
/************************************************************************************************************************/
|
|
}
|
|
|
|
/************************************************************************************************************************/
|
|
}
|
|
}
|