#11 유니티 관련 포스팅까지 유니티에 관련하여 여러 지식들을 다루었습니다.
이제부터는 그 지식들을 응용, 조합을 하겠습니다.
포스팅은 유니티 2D 게임 개발(게임 개발 프로그래밍)에 나온 예제로 진행합니다.
게임에 등장할 적(Enemy) 캐릭터를 만들도록 하겠습니다.
지금까지 배운 내용을 종합하여 적(Enemy) 캐릭터를 만들겠습니다.
1. EnemyObject를 만들고 Tag에 Enemy, Layer에 Blocking을 설정합니다.
2. Rigidbody 2D, Animator , Box Collider 2D, Spirte Renderer 컴포넌트를 추가합니다.
3. Sprite Renderer 컴포넌트 > Sorting Layer > Characters로 설정합니다.
4. EnemyObject를 Prefab으로 만들었습니다.
※Rigidbody 2D 컴포넌트의 속성 설정은 PlayerObject의 Rigidbody 2D 컴포넌트의 속성과 동일하게 설정했습니다.
EnemyObject의 Animator 컴포넌트에 적용되어 있는 EnemyControlloer 애니메이터는 사진과 같이 설정하였습니다.
위의 내용들에 대하여 참고할만한 링크입니다.
모든 캐릭터, 적(Enemy) 플레이어(Player)에 사용할 체력 등 기본적으로 지녀야 특성을 가진 클래스를 간단하게 구현하겠
니다.
1. Assets 폴더 > Scripts 폴더에 MonoBehaviour 폴더를 생성합니다.
MonoBehaviour 클래스를 상속받는 스크립트(C#)를 이곳에 저장할 것입니다.
2. MoveController 스크립트를 이곳에 옮깁니다.
3. Character 스크립트를 생성합니다.
Character 스크립트의 전체 코드입니다.
using UnityEngine;
public abstract class Character : MonoBehaviour
{
public int HP;
public int maxHP;
}
abstract 한정자를 사용하여 인스턴스화 할 수 없는 클래스고, 하위 클래스에서 상속해야 하는 클래스임을 말합니다.
현재 체력과 최대 체력을 저장할 변수를 만듭니다.
1. MonoBehaviour 폴더에 Player 스크립트를 만듭니다.
2. PlayerObject 프리팹에 방금만든 Player 컴포넌트를 추가합니다.
Player 스크립트의 전체 코드입니다.
using UnityEngine;
public class Player : Character
{
}
위에서 만든 Character 클래스를 상속받는 Player 클래스를 정의하였습니다.
Player 클래스 안쪽에는 아직 아무것도 적지 않았습니다.
안쪽은 나중에 채우도록 하겠습니다.
PlayerObject 프리팹의 Player 컴포넌트의 HP의 값을 5, MaxHP의 값을 10으로 변경합니다.
Player 스크립트는 비어있지만 Character 클래스를 상속받고 있기 때문에 Character 클래스에 변수로 선언된
HP, MaxHP가 있는 것을 볼 수 있습니다.
마지막으로 Ctrl + S를 눌러 Scene을 저장합니다!
감사합니다! :)
'유니티2D' 카테고리의 다른 글
#13-2 유니티 아이템 Scriptable Object(스크립터블 오브젝트) (0) | 2020.12.11 |
---|---|
#13-1 유니티 아이템 줍기(써클 콜라이더) (0) | 2020.12.10 |
#11-3 유니티 시네머신 안정화, 마무리 작업 (0) | 2020.12.06 |
#11-2 유니티 시네머신(Cinemachine) 제한자 (2) | 2020.12.05 |
#11-1 유니티 시네머신(Cinemachine)으로 플레이어 추적하기 (0) | 2020.12.04 |