This script can be used to switch the game's "Movement method" between "Direct" and "Point And Click", based on the last input.
To use it:
- Create a new C# file named DynamicMovement.cs and paste in the code below
- Create a new GameObject in the scene and attach the new Dynamic Movement component
- When a keyboard key is pressed, the game will switch to Direct movement. When the mouse is pressed, it will switch to Point And Click
- (Optional) The script's SetMovementMethod function can be modified to run any additional desired code at the time such a switch occurs
using UnityEngine;
using AC;
public class DynamicMovement : MonoBehaviour
{
[SerializeField] private MovementMethod defaultMovementMethod;
private void Start ()
{
SetMovementMethod (defaultMovementMethod, true);
}
private void Update ()
{
if (Input.anyKeyDown)
{
if (Input.GetMouseButtonDown (0) || Input.GetMouseButtonDown (1) || Input.GetMouseButtonDown (2))
{
SetMovementMethod (MovementMethod.PointAndClick);
}
else
{
SetMovementMethod (MovementMethod.Direct);
}
}
}
private void SetMovementMethod (MovementMethod movementMethod, bool force = false)
{
if (KickStarter.settingsManager.movementMethod != movementMethod || force)
{
KickStarter.settingsManager.movementMethod = movementMethod;
switch (movementMethod)
{
case MovementMethod.Direct:
KickStarter.player.EndPath ();
break;
default:
break;
}
}
}
}