Unity/베어유 : 어몽어스 개발 노트

[22강] 킬 퀘스트 준비하기

서니션 2023. 1. 25. 16:21
728x90
반응형

킬 화면은 미션화면과 비슷하기 때문에

미션 화면을 복제해줌

 

미션에서 만들어준 미션들, 게이지 삭제

미션완료 text 비활성화

 

MainMenu.cs 수정해줌

public GameObject killView;

 

// 킬 버튼 누르면 호출
public void ClickKill()
{
    gameObject.SetActive(false);
    missionView.SetActive(true);

    GameObject player = Instantiate(Resources.Load("Character"), new Vector3(0,-2,0), Quaternion.identity) as GameObject;
    player.GetComponent<PlayerCtrl>().mainView = gameObject;
    player.GetComponent<PlayerCtrl>().playView = killView;
    killView.SendMessage("KillReset");
}

killctrl.cs 만들어서

kill에 component로 넣어주고

KillReset함수 만들어서

메인 메뉴에서 호출시켜줌

 

2D Object - Sprites - Square해서 NPC의 이미지를 넣어 NPC를 만들어줌

Circle Collider 2D를 넣고 크기는 0.8

Is Trigger 체크해주기

 

캐릭터와 닿았을 때 NPC라는 구분이 필요하기 때문에

NPC 태그를 만들어주기

 

메인메뉴 킬 버튼에 스크립트 클릭킬 추가해주기

메인 메뉴에서 Kill View에 Kill도 넣어주기 (버튼말고..)

 

메인 화면에서 미션, 킬 버튼 눌러서 잘 작동되는지 확인

 

PlayCtrl에서

미션이라면, 킬 퀘스트라면 바꿔주는 스크립트 작성

 

// 미션이라면
if (isMission)
{
    btn.GetComponent<Image>().sprite = use;
}
// 킬 퀘스트라면
else
{
    btn.GetComponent<Image>().sprite = kill;
}

MainMenu에서

캐릭터 생성할때 true, false를 지정

player.GetComponent<PlayerCtrl>().isMission = true;
player.GetComponent<PlayerCtrl>().isMission = false;

 

버튼 활성화/비활성화를 위해 PlayerCtrl.cs의 OnTriggerEnter2D부분 수정

 

private void OnTriggerEnter2D(Collider2D col)
{
    if (col.tag == "Mission" && isMission)
    {
        coll = col.gameObject;
        btn.interactable = true;
    }
    
    if (col.tag == "NPC" && !isMission)
    {
        coll = col.gameObject;
        btn.interactable = true;
    }
}

private void OnTriggerExit2D(Collider2D col)
{
    if (col.tag == "Mission")
    {
        coll = null;
        btn.interactable = false;
    }
    if (col.tag == "NPC" && !isMission)
    {
        coll = null;
        btn.interactable = false;
    }
}

리소스 캐릭터에서 Scrpit에

Use와 Kill 이미지 넣어준다

 

각각 미션과 NPC 근처에 가면 버튼이 활성화 되는지 확인하면 끝!


드디어 어몽어스에서 재밌는 부분인

킬 퀘스트 부분을 배워보았다 :)

728x90
반응형