Files
beyond/Assets/ThirdParty/PlayMaker/Actions/Vector3/Vector3RotateTowards.cs
2024-11-20 15:21:28 +01:00

36 lines
1.1 KiB
C#

// (c) Copyright HutongGames, LLC 2010-2013. All rights reserved.
using UnityEngine;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory(ActionCategory.Vector3)]
[Tooltip("Rotates a Vector3 direction from Current towards Target.")]
public class Vector3RotateTowards : FsmStateAction
{
[RequiredField]
public FsmVector3 currentDirection;
[RequiredField]
public FsmVector3 targetDirection;
[RequiredField]
[Tooltip("Rotation speed in degrees per second")]
public FsmFloat rotateSpeed;
[RequiredField]
[Tooltip("Max Magnitude per second")]
public FsmFloat maxMagnitude;
public override void Reset()
{
currentDirection = new FsmVector3 { UseVariable = true };
targetDirection = new FsmVector3 { UseVariable = true };
rotateSpeed = 360;
maxMagnitude = 1;
}
public override void OnUpdate()
{
currentDirection.Value = Vector3.RotateTowards(currentDirection.Value, targetDirection.Value, rotateSpeed.Value * Mathf.Deg2Rad * Time.deltaTime, maxMagnitude.Value);
}
}
}