728x90
Avatar Mask
Upper Body Mask 할당해주기
Inspector - Humanoid를 손대보면 바뀐다!
Inverse Kinematics 역운동학
체크 되어 있어야 함!
PlayerInput.cs
PlayerMovement.cs
생성
PlayerInput.cs 작성
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 플레이어 캐릭터를 조작하기 위한 사용자 입력을 감지
// 감지된 입력값을 다른 컴포넌트가 사용할 수 있도록 제공
public class PlayerInput : MonoBehaviour
{
public string MoveAxisName = "Vertical"; // 앞뒤 움직임을 위한 입력축 이름
public string rotateAxisName = "Horizontal"; // 좌우 회전을 위한 입력축 이름
public string fireButtonName = "Fire1"; // 발사를 위한 입력 버튼 이름
public string reloadButtonName = "Reload"; // 재장전을 위한 입력 버튼 이름
// 값 할당은 내부에서만 가능
public float move { get; private set; } // 감지된 움직임 입력값
public float rotate { get; private set; } // 감지된 회전 입력값
public bool fire { get; private set; } // 감지된 발사 입력값
public bool reload { get; private set; } // 감지된 재장전 입력값
// 매프레임 사용자 입력을 감지
private void Update()
{
// 게임오버 상태에서는 사용자 입력을 감지하지 않음
if (GameManager.instance != null && GameManager.instance.isGameOver)
{
move = 0;
rotate = 0;
fire = false;
reload = false;
return;
}
// move에 관한 입력 감지
move = Input.GetAxis(MoveAxisName);
// rotate에 관한 입력 감지
rotate = Input.GetAxis(rotateAxisName);
// fire에 관한 입력 감지
fire = Input.GetButton(fireButtonName);
// reload에 관한 입력 감지
reload = Input.GetButtonDown(reloadButtonName);
}
}
GameManager가 없어서 오류 뜬다!
GameManager.cs 생성
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{
public static GameManager instance;
public bool isGameOver = false;
private void Awake()
{
if (instance == null)
{
instance = this;
}
else
{
Destroy(gameObject);
}
}
void Start()
{
}
void Update()
{
}
}
Reload를 만들자
Size 18 이었던 걸 19로 바꿈 그럼 아래에 하나 생겼다!
이름이랑 버튼 수정해주고
Type이 Key or Mouse Button인지 확인
다시 스크립트로 돌아오자
프로퍼티 설명!
- Property : 변수값을 읽거나 쓰는 과정에서 유연한 처리를 삽입할 수 있는 클래스 멤버.
변수처럼 보이지만 변수가 아닌 특수한 형태의 메서드임
강사님 설명 : 그냥 기능을 가진 변수라고 생각하세요.
클래스(스크립트)를 작성하다 보면 필드를 public으로 선언해버리고 싶은 충동이 들 때가 많음. 은닉성을 지키자니 귀찮고, 편하게 작업하자니 은닉성이 신경 쓰임.
class 클래스 이름
{
데이터형식 필드이름;
접근한정자 데이터형식 프로퍼티이름
{
get { return 필드이름; }
set { 필드이름 = value; }
}
}
'Hello, World! > Unity' 카테고리의 다른 글
유니티 3D 좀비 서바이벌 게임 만들자 (7) + 이벤트 함수 순서 (0) | 2022.04.12 |
---|---|
유니티 3D 좀비 서바이벌 게임 만들자 (6) (0) | 2022.04.11 |
유니티 3D 좀비 서바이벌 게임 만들자 (4) (0) | 2022.04.07 |
유니티 3D 좀비 서바이벌 게임 만들자 (3) (0) | 2022.04.07 |
유니티 3D 좀비 서바이벌 게임 만들자 (2) (0) | 2022.04.05 |
댓글