11일차 - 적이 화면을 나가면 사라지기, 캐릭터를 화면 밖으로 못나가게 하기

우리는 이미 화면 밖으로 나가면 사라지는 소스를 구현해본 적이 있다. 기억이 나는가? 그렇다 ! OnBecameInvisible이다!

void OnBecameInvisible() //화면밖으로 나가 보이지 않게 되면 호출이 된다.
    {
        Destroy(this.gameObject); //객체를 삭제한다.
    }

이 소스를 그대로 Enemy.cs에 삽입하면 된다.

그리고 캐릭터을 오른쪽으로 쭉 이동을 해보자. 캐릭터가 화면을 나가는것을 확인했는가? 이것이 정상적인 게임은 아닌거 같다. 우리는 이 게임을 조금 손봐주도록 하자.

Vector3 viewPos = Camera.main.WorldToViewportPoint(transform.position); //캐릭터의 월드 좌표를 뷰포트 좌표계로 변환해준다.
viewPos.x = Mathf.Clamp01(viewPos.x); //x값을 0이상, 1이하로 제한한다.
viewPos.y = Mathf.Clamp01(viewPos.y); //y값을 0이상, 1이하로 제한한다.
Vector3 worldPos = Camera.main.ViewportToWorldPoint(viewPos); //다시 월드 좌표로 변환한다.
transform.position = worldPos; //좌표를 적용한다.

다음 소스를 moveControl에 적용해주자.

results matching ""

    No results matching ""