728x90
유튜버 Dev GomDol님의 똥피하기 게임으로 Unity를 이용하여 공부할 겸 제작해 보았습니다.
[ 강의를 들으면서 새로 알게 된 내용 ]
private void ScreenChk()
{
Vector3 woripos = Camera.main.WorldToViewportPoint(this.transform.position); //월드 공간에서의 위치 값을 뷰포트 공간으로 바꿔서 가지고옴
if (woripos.x < 0.05f)
{
woripos.x = 0.05f;
}
if (woripos.x > 0.95f)
{
woripos.x = 0.95f;
}
this.transform.position = Camera.main.ViewportToWorldPoint(woripos);
}
월드 공간에서의 위치값을 설정하여 뷰포트 공간으로 바꿔서 가지고 올 수 있음을 알 수 있었음.
[ 모바일에서도 이용할 수 있도록 플레이어의 이동을 변환 ]
움직임 변환 내용 : 화면의 좌측 & 우측을 클릭하여 플레이어가 움직일 수 있도록 수정
private void TouchPlayerMove()
{
if(Input.touchCount > 0)
{
var screenPos = Input.touches[0].position;
var viewportPos = Camera.main.ScreenToViewportPoint(screenPos);
var xMove = (viewportPos.x < 0.5) ? -1f : 1f; // 움직임
if (xMove < 0)
{
renderer.flipX = true;
animator.SetBool("Speed", true);
}
else if(xMove > 0)
{
renderer.flipX = false;
animator.SetBool("Speed", true);
}
else
{
animator.SetBool("Speed", false);
}
rigidbody.velocity = new Vector2(xMove * speed, rigidbody.velocity.y);
}
}
< 모바일 빌드 코드 >
유니티 모바일 터치 | |
Input.touchCount | 모바일 장치 화면에 접촉되어 있는 손가락의 갯수 |
Input.touches | 모바일 장치 화면에 접촉한 손가락의 순서 ( Touch 구조체를 반환) |
Camera.main | |
스크린 포인트(Screen Point) | 화면 포인트는 픽셀로 정의 |
뷰 포인트(Viewport Point) | 정규화(0 과 1사이)되고 카메라에 상대적 |
월드 포인트(World Point) | 전역 좌표(Transform.positino)으로 정의 |
728x90
'Unity > YouTube 따라 만들기' 카테고리의 다른 글
[ Unity ]스플래시, 광고 붙이기, 사운드 추가하기 (0) | 2024.03.26 |
---|---|
[ Unity ] 카드 뒤집기 제작 (1) | 2024.03.22 |
[ Unity ] 고양이 밥주기 제작 (0) | 2024.03.21 |
[ Unity ] 풍선을 지켜라 제작 (0) | 2024.03.21 |
[ Unity ] 빗물받는 르탄이 제작 (0) | 2024.03.19 |