본문 바로가기
개발일지/코드 기록

유니티2D 탑다운 캐릭터 위치에 따른 오브젝트 레이어 정렬

by 개발자 슈니 2022. 9. 26.
728x90
반응형

위처럼 캐릭터가 어떤 오브젝트의 아래로 가면 캐릭터가 위로 오고

뒤로 가면 캐릭터가 가려지게 해보자

우선 오브젝트의 인스펙터 창에서

피봇을 찾아 바텀으로 설정해준다

그런 다음 스크립트를 만든다

 

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

public class LayerSetting : MonoBehaviour
{
    SpriteRenderer spriteRen;

    void Start()
    {
        spriteRen = GetComponent<SpriteRenderer>();
        spriteRen.sortingOrder = Mathf.RoundToInt(transform.position.y) * -1;
    }
}

 

LayerSetting 이라는 스크립트를 만들고 다음과 같이 작성한다

그리고 플레이어의 스크립트에도 똑같이 스프라이트 렌더러 컴포넌트를 작성하고

초기화해준다

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

public class PlayerAction : MonoBehaviour
{
    SpriteRenderer myRenderer;

    void Awake()
    {
        myRenderer = GetComponent<SpriteRenderer>();
    }

    void Update()
    {
        myRenderer.sortingOrder = Mathf.RoundToInt(transform.position.y) * -1;
    }

 

유튜브의 DevGomDol님의 영상을 통해 얻게 된 지식!

영상을 시청하면 더 자세한 설명도 해주신다^^

https://youtu.be/1CPQzoYFMog

 

+ 그외 다른 방법도 있어서 추가한다

에디터 좌측 상단에 Edit을 클릭하고

Project Setting -> Graphics 에서 Camera Settings 모드를 CustomAxis로 변경한뒤

Transparency Sort Axis를 0,1,0 으로 맞춰준다

이러면 레이어가 같은 스프라이트 렌더러는 좌표 y축에 따라 바뀌는 기능을 할 수 있단다

728x90
반응형

댓글