11,579 questions
Hi, seems like you are missing } at the end of the program. Please check it.
//Takes and handles input and movement for a player character
public class NewBehaviourScript : MonoBehaviour
{
public float moveSpeed = 1f;
public float collisionOffset = 0.05f;
public ContactFilter2D movementFilter;
Vector2 movementInput;
Rigidbody2D rb;
List<RaycastHit2D> castCollision = new List<RaycastHit2D>();
// Start is called before the first frame update
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
private void FixedUpdate()
{
// If movement input is not 0, try to move
if (movementInput != Vector2.zero)
{
bool success = TryMove(movementInput);
if (!success)
{
success = TryMove(new Vector2(movementInput.x, 0));
if (!success)
{
success = TryMove(new Vector2(0, movementInput.y));
}
}
}
}
private bool TryMove(Vector2 direction)
{
// Check for potential collisions
int count = rb.Cast(
direction, // X and Y valuses between -1 and 1 that represent the direction from the body to look for collisions
movementFilter, // The settings that determine where a collision can occur on such as layer to collide with
castCollisions, // List of collisions to store teh found collisions into after the Cast is finished
moveSpeed * Time.fixedDeltaTime + collisionOffset); // The amount to cast equal to teh movement plus and offset
if (count == 0)
{
rb.MovePosition(rb.position + direction * moveSpeed * Time.fixedDeltaTime);
return true;
}
else
{
return false;
}
}
void OnMove(InputValue movementValue)
{
movementInput = movementValue.Get<Vector2>();
} // This is (59,6)
} //add this closing tag