Untitled
unknown
csharp
5 years ago
1.4 kB
42
Indexable
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharacterControls : MonoBehaviour
{
Rigidbody2D rb2d;
public float speed = 200f;
public float jumpForce = 200f;
int jumpInput;
float moveInput;
bool isGrounded = false;
float checkRadius = 0.5f;
public Transform groundCheck;
public LayerMask groundMask;
Quaternion facingRight = Quaternion.Euler(Vector3.zero);
Quaternion facingLeft = Quaternion.Euler(new Vector3(0, 180, 0));
void Start()
{
rb2d = GetComponent<Rigidbody2D>();
}
void Update()
{
moveInput = Input.GetAxisRaw("Horizontal");
isGrounded = Physics2D.OverlapCircle(groundCheck.position, checkRadius, groundMask);
if (Input.GetButtonDown("Jump") && isGrounded) {
jumpInput = 1;
} else {
jumpInput = 0;
}
// left-right sprite flip
if (moveInput > 0) {
transform.rotation = facingRight;
}
if (moveInput < 0) {
transform.rotation = facingLeft;
}
}
private void FixedUpdate() {
// vertical movement
rb2d.velocity = new Vector2(moveInput * speed * Time.deltaTime, rb2d.velocity.y);
// jumping
rb2d.AddForce(new Vector2(0, jumpInput * jumpForce * Time.deltaTime), ForceMode2D.Impulse);
}
}
Editor is loading...