-
[Unity]유니티 입문하기 6-12(적군 오브젝트 생성)프로그래밍 2023. 8. 23. 19:39
이전 글에서 객체 지향의 마지막 성질까지 배웠습니다.
이제 여태까지 배운 지식들을 총동원해 적 캐릭터를 한번 만들어봅시다.
먼저 Enemy 클래스를 정의해봅시다.
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Enemy : MonoBehaviour { // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } }
Enemy 클래스를 막 생성했다면 이런 모습일 겁니다.
방금 생성한 뒤 아무것도 건드리지 않았으니 Start()와 Update() 메서드를 제외한다면 텅 비어있는 상태일겁니다.
이걸 이제부터 하나씩 채워나가봅시다.
체력
먼저 아군이 공격을 했을 때 그것을 맞고 사라지기 위해서는 체력이 필요하겠죠.
float 타입 변수 health를 생성한 뒤, 기본값을 50으로 설정해봅시다.
public class Enemy : MonoBehaviour { float health = 50.0f; void Start() { } void Update() { } }
이렇게, Start()메서드의 위에 작성하면 됩니다.
이걸로 벌써 적군이 가지는 속성 중 하나인 체력을 클래스에 추가했습니다.
그렇다면 적군이 이 속성을 가지고 무슨 행위를 할 지도 추가해볼까요?
void TakeDamage(int value) { health -= value; } public float GetHealth() { return health; }
피해를 받았을 때 체력을 감소하는 행위인 TakeDamage() 메서드와
그렇게 변화한 체력을 확인할 수 있는 GetHealth() 메서드를 추가했습니다.
만약 health의 자료형을 지금 저와 다르게 설정했다면, health의 자료형에 맞춰서 GetHealth() 메서드의 반환 타입을 설정하는 것을 잊지 마세요.
스크립트를 얼추 만들었으니 이제 오브젝트를 생성해서 부착해봅시다.
이렇게 스크립트를 부착하는 형식으로 객체를 생성할 수 있는 것은, 앞서 말한 바 있지만 MonoBehaviour 덕분입니다.
이와는 반대로 Monobehaviour를 상속한 채 여태 해오던 것처럼 객체를 생성하려고 하는 것은 유니티에서 금지하고 있는 사용법이므로 주의합시다.
지금 저는 적군 오브젝트의 스프라이트를 붉은 색 비행기로 하였지만, 만약 Knob 같은 단색 스프라이트를 사용하고 있으신 분이라면, 스프라이트 렌더러의 컬러 옵션을 이용해 색을 변경할 수 있으니, 원하는 색으로 맞춰보세요.
다음 글에서는 적군이 총알에 맞았을 때 반응할 수 있는 피격 판정을 만들어보겠습니다.
'프로그래밍' 카테고리의 다른 글
[Unity]유니티 입문하기 6-13(적 피격 판정) (2) 2023.08.24 [Unity]유니티 입문하기 6-11(다형성) (0) 2023.08.22 [Unity]유니티 입문하기 6-10(클래스의 형변환) (0) 2023.08.17 [Unity]유니티 입문하기 6-9(상속) (0) 2023.08.14 [Unity]유니티 입문하기 6-8(속성) (0) 2023.08.11