using System;
using System.Reflection;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
[RequireComponent(typeof(Rigidbody2D))]
public class playercontroller : MonoBehaviour
{
public float walkSpeed = 5f;
Vector2 moveInput;
[SerializeField]
private bool _isMoving = false;
public bool IsMoving { get
{
return _isMoving;
}
private set
{
_isMoving = value;
animator.SetBool("isMoving", value);
}
}
[SerializeField]
private bool _isRunning = false;
public bool IsRunning
{
get
{
return _isRunning;
}
set
{
_isRunning = value;
animator.SetBool("isRunning", value);
}
}
Rigidbody2D rb;
private void Awake()
{
rb = GetComponent<Rigidbody2D>();
}
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
private void FixedUpdate()
{
rb.velocity = new Vector2(moveInput.x * walkSpeed, rb.velocity.y);
}
public void onMove(InputAction.CallbackContext context)
{
moveInput = context.ReadValue<Vector2>();
IsMoving = moveInput != Vector2.zero;
}
public void onRun(InputAction.CallbackContext context)
{
if (context.started)
{
IsRunning = true;
}
else if (context.canceled)
{
IsRunning = false;
}
}
}
Why do you get a compiler error accessing a field you’ve not defined anywhere?
You need to define it and assign it to something.
2 Likes
thank you i was going insane