본문 바로가기

분류 전체보기

(26)
뱀서라이크 따라하기 - 4강 재배치 로직 마무리 저번 시간에 이어서 4강을 마무리 해보도록 하겠습니다! 먼저 scene 부분의 increment snapping 부분에서 move를 10으로 늘려줍니다. 그런 뒤 배경에 그 전 글에서 만든 reposition을 넣어주시고, 복사하여 4개 만들어 주시면 됩니다. 순서는 상관 없으니 캐릭터를 중심으로 4개로 둘러싸주시면 됩니다. 움직일때는 컨트롤 키를 누른 상태로 움직여 주셔야 10의 단위로 움직이니, 유의해주세요. 그런 뒤, 작동을 시켜 보면 오브젝트 주변의 초록 네모 박스가 Ground라고 태그된 땅을 벗어나려 하면 배경이 플레이어가 가는 방향으로 따라오는 모습을 볼 수 있습니다. 여기서 주의하실 점은, 카메라가 너무 넓은 범위를 보여줘서 저 아래쪽의 연두색 사각형 범위를 넘어갈 경우, 배경이 아직 움직..
뱀서라이크 따라하기 - 4강 재배치 스크립트 준비하기 이번에는 저번 글에서 재배치 준비를 한 것에 이어서, 재배치 스크립트를 만들어 보도록 하겠습니다. 먼저 c# 스크립트를 스크립트 폴더에 만들어 주고, 이름은 reposition이라고 지었습니다. 한번 더 c# 스크립트를 만들고, 이름은 game manager라고 지었습니다. GameManager라고 파일 이름을 지어줄 경우, 유니티에서 이런식으로 자동으로 아이콘을 바꿔주게 됩니다. 추가적인 기능은 없고, 아이콘만 바뀝니다. 계층창에 빈 object를 만들어 이름을 GameManager라고 짓고, 스크립트에서 GameManager를 드래그 하여 컴포넌트로 추가해줍니다. 그런 뒤 GameManager에 들어가 아래처럼 코드를 짜줍니다 using System.Collections; using System.Co..
뱀서라이크 - 4강 무한맵 구현하기 첫번째 먼저 window - 2d - tile palette에 들어가 줍니다 그 뒤 tiles에서 이미 만들어져 있던 rantile을 지우고, 오른쪽 클릭- create - 2d - tiles - ruletime을 눌러줍니다 먼저 number of tile rules 를 1로 바꾸어 주고, output을 random으로 바꾸어 줍니다. size를 10으로 바꿔주고 그 뒤 sprite에서 타일 이미지를 가져와 넣어줍니다 하이라키 부분에서 +를 눌러주고, 2d object, tilemap , rectangular를 눌러줍니다 타일 팔레트를 켜주고, 그 아래에 브러쉬를 라인 브러쉬로 바꿔줍니다 그 뒤, 브러쉬를 이용해 타일을 채워주시면 됩니다. 라인브러쉬의 경우 클릭한 뒤 움직이면 그 줄을 다 채워줍니다. 이렇게 채..
뱀서라이크 따라하기 - 3강 셀 애니메이션 제작 3번째 저번 글에 이어서, 이번에는 파라미터가 자동으로 변하게 하여 애니메이션이 변하게 만들어 보겠습니다 Animator anim; Player 클래스 안에 Animator 변수 하나를 선언해줍니다 그리고 Awake 안에서 변수를 초기화 해줍니다 void Awake() { rigid = GetComponent(); spriter = GetComponent(); anim = GetComponent(); } 그 뒤 아래쪽 LateUpdate 쪽에 코드를 추가해줍니다 void LateUpdate(){ anim.SetFloat("Speed",inputVec.magnitude); if (inputVec.x != 0){ spriter.flipX = inputVec.x
뱀서라이크 따라하기- 3강 셀 애니메이션 제작 2번째 저번 글에서 이어집니다. 방향 전환에 이어서 이번에는 셀 애니메이션을 만들어 보도록 하겠습니다! 먼저 run이라고 이름붙은 그림들을 모두 선택해준 뒤, 오브젝트에 드래그합니다이름은 Run_Player0이라고 지어줍니다. Stand라고 적힌 그림들도 드래그 하여 추가해주고, 애니메이션 이름을 Stand_Player0이라고 지어줍니다. Dead라고 적힌 그림도 추가해주고 이름 지어주시면 됩니다! 그런식으로 추가를 해주고 나면, 오브젝트에 animator라는 새로운 컴포넌트가 생기게 됩니다! 이 애니메이터는 애니메이션을 상태로 관리하는 컴포넌트 입니다. 실질적으로, 데이터는 컨트롤러 안에 있습니다. 이제 에니메이션 폴더 안에 있는 애니메이션 컨트롤러를 실행시켜 줍니다 저 아이콘을 누르게 되면, 이러한 창이 뜨..
뱀서라이크 따라하기 - 3강 2D 셀 애니메이션 제작하기 유니티에 들어가면, sprite renderer라는 컴포넌트가 오브젝트에 있는 것을 볼 수 있습니다 여기서 x 축을 선택하면 오브젝트가 x축을 기준으로 반전되게 됩니다. 이제 우리가 조작하여 움직이고자 하는 방향으로 캐릭터가 바라볼 수 있게끔 만들어 보겠습니다. void LateUpdate(){ } 먼저 코드 가장 아래쪽에 void LateUpdate를 추가해줍니다. 이 함수는 프래임이 종료되기 전에 실행되는 생명주기 함수라고 합니다. if (inputVec.x != 0){ //키를 누르기 전에는 inputVec의 값이 0, 그러니 키를 눌렀을 때 이 if문이 돌아간다는 의미 } 그 안에 이런 코드를 넣어줍니다. 그 위에는 spriterenderer를 추가해주고, awake안에 spriter를 정의해줄 ..
뱀서라이크 따라하기 - 2강 이동하게 만들기-3 그 전의 글과 이어지는 내용입니다! https://unityfactory.tistory.com/5 오늘도 유니티 강의를 들으며 따라하는 과정을 작성해보도록 하겠습니다 먼저 다운 받은걸 실행시켜 보기 위해서, 오브젝트의 컴포넌트 창에서, player input이라 검색하고, 나오는 컴포넌트를 추가해주신 뒤, Create action 버튼을 눌러 파일을 만들어주시면 이런 화면이 나오게 됩니다! 또한 요러한 input action에 대한 창도 뜨게 되는데요, 그 화면에서 processor 부분에 normalized Vectore 2를 추가해주시면 됩니다 그 뒤 다시 작성했었던 c# 스크립트를 켜주신 뒤, 위의 네임스페이스에 using UnityEngine.InputSystem; 를 가장 마지막줄에 포함시켜주시..
뱀서라이크 따라하기 - 2강 플래이어 이동 두번째 normalized를 추가해주게 되면, 대각선으로 픽셀을 움직일 때 거리를 루트2라고 판단하여 움직여, 대각선으로 이동할 때 훨씬 빠르게 움직이는 현상을 막을 수 있습니다 이런식으로 코드가 완성되었습니다! speed의 경우에는 나중에 변수의 값을 설정하여 오브젝트가 얼마나 빠른 속도로 이동할지 정하는데 사용될 것 입니다 하지만 이렇게 코드를 쓰고 나면, 방향키에서 손을 때고 나서도 오브젝트가 움직이는 현상이 있습니다. 이를 해결하기 위해서는 inputVec.x = Input.GetAxis("Horizontal"); inputVec.y = Input.GetAxis("Vertical"); 이런식으로 써져있던 코드에 Raw를 끝에 넣어서 inputVec.x = Input.GetAxisRaw("Horizonta..