Creating Destructible Walls
플레이어의 길이 막혔을 때 벽을 파괴할 수 있도록 하는 스크립트를 작성하겠습니다. 새로운 스크립트를 Wall이라는 이름으로 생성하고 에디터로 열어봅시다.
먼저 변수들을 선언하고, 레퍼런스를 Awake()에서 연결해 준 뒤, DamageWall이라는 퍼블릭 메소드를 만듭니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Wall : MonoBehaviour
{
public Sprite dmgSprite; // 벽을 칠 때 시각효과 스프라이트
public int hp = 4; // 벽의 hp
private SpriteRenderer spriteRenderer;
// Use this for initialization
void Awake ()
{
spriteRenderer = GetComponent<SpriteRenderer>();
}
public void DamageWall(int loss)
{
spriteRenderer.sprite = dmgSprite;
hp -= loss;
if (hp <= 0)
gameObject.SetActive(false);
}
}
| cs |
일단 스크립트를 저장하고 다시 유니티로 돌아가서, 프리팹 폴더를 봅니다.
내벽으로 쓰이는 Wall1~Wall8을 한번에 선택하고 상단 메뉴에서 Component>Scripts>Wall을 선택해서 추가합니다.
스크립트가 한번에 추가되었고, Dmg Sprite 프로퍼티를 연결해야 합니다. 각각 매칭되는 스프라이트를 연결해 주라고 했는데,
벽이 8개인데 반해 스프라이트는 7개입니다. 빠르게 지나가서 영상을 천천히 돌려보니 5, 6번 벽을 같은 5번 스프라이트에 연결해 주고 있습니다. 그대로 따라갑니다.
평소보다 좀 짧지만 여기서 일단 벽의 스크립트가 끝났네요.
댓글 없음:
댓글 쓰기