[고1 게임엔진] 09 - (2)

2023. 9. 11. 15:00·고1/게임엔진
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    // 좌우이동 && 점프(velocity만 사용)

    // 리지드바디2D형 변수선언
    Rigidbody2D rb;

    [HideInInspector]
    public float speed = 5;     // 좌우이동시 이동 속도
    public float jumpPower = 8; // 점프력

    float axisH;    // 좌우이동 여부

    // public 처럼 에디터에서 편집 가능, 하지만 외부스크립트에서는 접근불가(private)
    [SerializeField] Transform tr;       // 트랜스폼 컴포넌트 변수 선언
    [SerializeField] float radius;       // 반지름
    [SerializeField] LayerMask isLayer;  // 레이어마스크형 변수선언

    bool isGround;      // 레이어에 발밑이 닿았는지 여부

    void Start()
    {
        // 리지드바디2D 컴포넌트 가져오기
        rb = GetComponent<Rigidbody2D>();
        // 충돌후 회전금지
        rb.constraints = RigidbodyConstraints2D.FreezeRotation;
    }

    void Update()
    {
        // 좌우이동 감지
        axisH = Input.GetAxisRaw("Horizontal"); // +1, -1, 0 세값중 하나
        // 점프여부
        isGround = Physics2D.OverlapCircle(tr.position, radius, isLayer);   // true or false
        if(isGround && Input.GetKeyDown("space"))
        {
            // 점프하기
            rb.velocity = Vector2.up * jumpPower;
        }
        else if(isGround==false && Input.GetKeyDown("space"))
        {
            rb.velocity = Vector2.zero; // (0, 0)
        }
    }

    void FixedUpdate()
    {
        // 좌우이동하기
        rb.velocity = new Vector2(axisH * speed, rb.velocity.y);

        // 좌우반전하기
        if(axisH != 0)  // +1 또는 -1이면
        {
            transform.localScale = new Vector2(axisH, 1);
        }
    }
}
저작자표시 (새창열림)

'고1 > 게임엔진' 카테고리의 다른 글

[고1 게임엔진] 09 - (4)  (0) 2023.09.18
[고1 게임엔진] 09 - (3)  (0) 2023.09.13
[고1 게임엔진] 09 - (1)  (0) 2023.09.04
[고1 게임엔진] 08 - (1)  (0) 2023.08.30
[고1 게임엔진] 08 - (3)  (0) 2023.08.30
'고1/게임엔진' 카테고리의 다른 글
  • [고1 게임엔진] 09 - (4)
  • [고1 게임엔진] 09 - (3)
  • [고1 게임엔진] 09 - (1)
  • [고1 게임엔진] 08 - (1)
백학도령
백학도령
  • 백학도령
    백학도령
  • 전체
    오늘
    어제
  • 공지사항

    • 유용한 청년
    • 목록 (110)
      • 웹디자인개발기능사 (5)
      • 티스토리 (1)
      • 고3 (5)
        • 응용 프로그래밍 (2)
        • 데이터베이스 (1)
        • 성공적인 직업생활 (1)
        • 비즈니스 영어 (1)
      • 고2 (40)
        • 문학 (4)
        • 수학 (4)
        • 인공지능 수학 (1)
        • 통합사회 (4)
        • 영어 (6)
        • 한국사 (6)
        • 일본어 (4)
        • 응용 프로그래밍 (3)
        • 게임 프로그래밍 (4)
        • 자료 구조 (4)
      • 고1 (59)
        • 국어 (4)
        • 수학 (4)
        • 과학 (4)
        • 영어 (4)
        • 프로그래밍 (16)
        • 화면구현 (11)
        • 게임엔진 (15)
        • 인공지능 (1)
  • hELLO· Designed By정상우.v4.10.3
백학도령
[고1 게임엔진] 09 - (2)
상단으로

티스토리툴바