-
10일차 고양이 밥주기 게임개발일지/스파르타 코딩클럽 유니티 강의 2024. 4. 1. 16:17
드디어 3주차를 시작했다.
4월 15일 본 캠프 시작 전까지 끝내려면
조금 더 속도를 내야할 것 같다
오늘 배운 내용
- 기본 세팅하기 & 배경 만들기
- 이미지 에셋에 넣기
- 오브젝트 배치하기
- 시작씬 구성하기
- 씬 넘어가기
- 밥 만들어두기
- 밥 복사해서 쏘기
- 밥 없어지게 하기
- 강아지 마우스 위치로 움직이게 하기
새롭게 알게 된 내용
오늘 발생한 문제
강아지가 계속 움직인다
void Update() { Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); float x = mousePos.x; if (x > 8.5f) { x = 8.5f; } if (x < -8.5f) { x = -8.5f; } transform.position = new Vector3(x, transform.position.y, 0); }
강아지가 화면 밖으로 나가는 걸 방지하기 위해 코드를 짰는데
제대로 작동하지 않았다.
살펴본 결과 맨 아랫줄
transform.position = new Vector3(x, transform.position.y, 0);
여기서 x가 mousePos.x로 되어있었다.
중요하게 생각하는 부분
씬 넘어가기
씬을 넘기는 방법은 씬을 다시 시작하는것과 동일하다
씬의 이름만 바꿔주면 된다.
using UnityEngine.SceneManagement; public void GameStart() { SceneManager.LoadScene("MainScene"); }
오브젝트 무조건 위로 직진하게 하기
void Update() { transform.position += new Vector3(0.0f, 0.5f, 0.0f); }
Quaternion.identity
public GameObject food; public GameObject dog; void Start() { InvokeRepeating("makeFood", 0.0f, 0.2f); } void makeFood() { float x = dog.transform.position.x; float y = dog.transform.position.y + 2.0f; Instantiate(food, new Vector3(x,y,0), Quaternion.identity); }
보다시피 0.2초마다 강아지의 위치에서 밥을 쏘는 코드이다
여기서 Instantiate 함수를 보면 Quaternion.identity라는게 있는데
이는 '회전이 없다' 는 뜻이다 우리는 2D 게임을 제작중이기에
z값을 넣기는 하는데 회전하지 않게 그냥 항상 넣는 느낌이라고 보면 된다고 한다.
***강아지가 마우스 위치 따라가게 하기***(x좌표만)
void Update() { Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); transform.position = new Vector3(mousePos.x, transform.position.y, 0); }
저번시간에도 배운 내용이지만 매우 중요한 내용
3주차도 역시나 1주차와 2주차의 복습에
조금씩의 새로운 내용이 추가되었다.
복습을 계속해서 하는 방식이 마음에 든다.
'개발일지 > 스파르타 코딩클럽 유니티 강의' 카테고리의 다른 글
12일차 레벨 구성하기 (1) 2024.04.03 11일차 고양이 나타내기 (0) 2024.04.02 9일차 풍선 애니메이션 전환하기 ( Invoke , Has Exit Time ) (0) 2024.03.29 8일차 최고점수 보여주기 (0) 2024.03.28 7일차 게임 끝내기 (0) 2024.03.27