unity 2d top down movement
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Shooting : MonoBehaviour
{
public Transform firePoint;
public GameObject bulletPrefab;
public float bulletForce = 20f;
// Update is called once per frame
void Update()
{
if(Input.GetButtonDown("Fire1"))
{
Shoot();
}
}
void Shoot()
{
GameObject bullet = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
Rigidbody2D rb = bullet.GetComponent<Rigidbody2D>();
rb.AddForce(firePoint.up * bulletForce, ForceMode2D.Impulse);
}
}
Rigidbody2D rigidbody2d;
[Header("Movement Settings")]
[SerializeField] float moveSpeed = 5f;
[SerializeField] float jumpPower = 10f;
[Header("Bools")]
[SerializeField] bool isGrounded = false;
// Start is called before the first frame update
void Start()
{
rigidbody2d = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
Vector3 Move = new Vector3(Input.GetAxis("Horizontal"), 0, 0);
transform.position += Move * Time.deltaTime * moveSpeed;
Jump();
}
void Jump()
{
if (Input.GetKeyDown(KeyCode.Space) && isGrounded == true)
{
rigidbody2d.AddForce(new Vector2(0f, jumpPower), ForceMode2D.Impulse);
isGrounded = false;
}
}
void OnCollisionEnter2D(Collision2D other)
{
isGrounded = true;
}