게임 리팩토링 - 가구 오브젝트

찡완이·2023년 9월 24일
1

서론

  • 가구 오브젝트 설정, 관리에 관한 내용입니다.

1. 가구

1.1. 기존 가구 시스템

  • BoxCollider2D를 추가, 범위를 적절하게 조절해서 플레이어가 가려지는 구간, 막히는 구간을 설정했음.

  • Sorting Order을 y축 값에 따라 변화시키는 스크립트를 추가하여 플레이어가 뒤에 있으면 가려지도록, 앞에 있으면 가구를 가리도록 구현하였음.

    • ex) Table 오브젝트의 구성
  • Sorting Order을 조정하는 기존 스크립트

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SortingLayer : MonoBehaviour
{
    public SpriteRenderer sr;
    public int order;
    void Start()
    {
        sr = GetComponent<SpriteRenderer>();
    }

    // Update is called once per frame
    void Update()
    {
    	// 오브젝트의 Sorting Order을 y좌표에 따라 설정
        order = -((int)transform.position.y + 243); 
        sr.sortingOrder = order;
    }
}
  • 컴포넌트를 추가한 가구들을 프리팹으로 만들어두지 않아서 이를 맵에서 일일이 복사하여 사용하였음.
    • 가구를 프리팹으로 만들지 않고 복사해서 사용한 모습

1.2. 수정 방향

  • 가구 오브젝트를 프리팹으로 처리하여 쉽게 꺼내 쓸 수 있도록 할 예정.
  • 스크립트를 사용하지 않고 오브젝트의 Sorting Order을 조정해볼 예정.

1.3. 해결 과정

  1. 가구 스프라이트를 Hierachy로 드래그, 각 오브젝트에 BoxCollider2D를 추가한다.
  2. 각 오브젝트들을 프리팹으로 만든다.
  3. Project Settings -> Graphics -> Camera Settings 에서 Transparency Sort Mode - Custom Axis로 변경, Transparency Sort Axis에서 y값을 1로 설정한다.

1.3.1. 참고 자료

1.4. 게임 내 모습

  • y축 값에 따라 플레이어와 가구의 가려지는 판정이 달라지는 것을 스크립트 없이 구현할 수 있었다.
profile
코딩공부합니다

0개의 댓글