Hi everyone,
Here’s my scenario:
I want my Player(GameObject1) to stop being able to move when another GameObject2 is Active.
I’m using the Fungus extension to operate some dialogue boxes in a 2D Pokemon-style game.
All of my player movements are couched within a “canMove” bool.
How can I disable my “canMove” bool when this other GameObject controlling my dialogues is Active?
Because I’m using Fungus, I know I’m a bit limited for find other options for stopping Player movement during dialogue moments, but if anyone has experience with this, I’d be very grateful!
Here’s the relevant code:
public class PokemonPlayerController : MonoBehaviour
{
public Rigidbody2D theRB;
public float moveSpeed;
public bool canMove;
public bool isWalking;
public GameObject sayingDialog;
public GameObject footsteps;
// Start is called before the first frame update
void Start()
{
myAnim = GetComponent<Animator>();
canMove = true;
}
// Update is called once per frame
void Update()
{
// ESTABLISH PLAYER'S MOVEMENT
theRB.velocity = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical")) * moveSpeed;
// ESTABLISH ANIMATIONS
myAnim.SetFloat("moveX", theRB.velocity.x);
myAnim.SetFloat("moveY", theRB.velocity.y);
myAnim.SetBool("isWalking", isWalking);
// FIND OUT IF PLAYER IS MOVING
if (canMove)
{ if (Input.GetAxisRaw("Horizontal") >= 0.1 || Input.GetAxisRaw("Horizontal") <= -0.1 || Input.GetAxisRaw("Vertical") >= 0.1 || Input.GetAxisRaw("Vertical") <= -0.1)
{
// PLAY FOOTSTEPS IF WALKING
isWalking = true;
if (isWalking)
{
footsteps.SetActive(true);
}
}
// STOP FOOTSTEPS IF NOT WALKING
else
{
isWalking = false;
if (!isWalking)
{
footsteps.SetActive(false);
}
}
}
if (!canMove)
{
moveSpeed = 0f;
}