2021. 12. 1. 17:35ㆍ카테고리 없음
1주차 수업 목표는?!
- 유니티(Unity) 다뤄보기
- C# 기본 문법 익히기
- 유니티 기본 사용법 익히기
<배운 것 간단히 정리>
캐릭터를 움직이기 전 'Visual Studio' 세팅 필요
-> 유니티에선 캐릭터가 코드를 가짐
-> 중요한 두 가지 함수: start(너는 태어날 때) & update(매 순간 이렇게 해라)
transform.position += new Vector3(0.05f, 0, 0);
-> 트랜스폼 안의 포지션을 Vector3 방향으로 계속 더해주라
-> float: 소수점을 나타내는 자료형, 소수를 쓰고 싶으면 뒤에 f를 붙여야 함
마우스 클릭 시 방향 바꾸기
-> if (Input.GetMouseButtonDown(0)) { toward *= -1; direction *= -1; }
충돌 세팅을 할 땐,
둘 다 Collider이 있어야 함, 둘 중 하나는 Rigidbody가 있어야 함
ex) 빗방울이 땅에 닿으면 없어지게 하기
'땅'인지 알 수 있게 하려면, ground라는 tag 필요
+ onCollisionEnter2D: 다른 콜라이더에 부딪혔을 때 실행되는 내장함수
-> void OnCollisionEnter2D(Collision2D coll) { if (coll.gameObject.tag == "ground") { Destroy(gameObject); } }
랜덤하게 위치 잡아주기
-> void Start() { float x = Random.Range(-2.7f, 2.7f); float y = Random.Range(3.0f, 5.0f); transform.position = new Vector3(x, y, 0); }
랜덤하게 빗방울 위치 잡아주기
-> start() 함수에 랜덤 position 세팅하기
-> void Start() { float x = Random.Range(-2.7f, 2.7f); float y = Random.Range(3.0f, 5.0f); transform.position = new Vector3(x, y, 0); }
+ int는 정수, float는 소수(3.55, 3.141.. 등)를 저장하기 위함
GameManager: 게임 전체를 조율하는 오브젝트
GameManager - 싱글톤 화
-> 싱글톤: 어디서도 부를 수 있는 '하나'로 만들어주는 것-> public static gameManager I; void Awake() { I = this; }
0.5초마다 한 번씩 실행되는 코드
-> InvokeRepeating 함수 사용-> InvokeRepeating("makeRain", 0, 0.5f);
점수 올라가는 함수
-> int totalScore = 0; public void addScore(int score) { totalScore += score; }
초기화 해야 할 요소들
-> timeScale, timeLimit, totalScore-> void Start() { InvokeRepeating("makeRain", 0, 0.5f); initGame(); } void initGame() { Time.timeScale = 1.0f; totalScore = 0; limit = 30.0f; }
<느낀 점>
간단한 것 같지만 어렵다..! 코드를 입력하는 과정에서 몇 번 오류가 나서 어떻게 해야 할지 몰랐다ㅜㅜ 하지만 어떤 함수를 잘못 입력해서 오류가 났을지 스스로 생각해보며 문제점을 해결할 수 있었다ㅎㅎ 수업은 재밌었다!! 이런 방식으로 게임 속 캐릭터와 같은 물체들이 움직인다는 걸 깨달으며, 나도 게임 개발 코딩을 마스터하고 싶다는 생각이 들었다 (가능할지 모르겠지만..ㅎㅎ) 앞으로 남은 수업도 열심히 들으며 지금은 생소한 함수가 나중엔 익숙해지길 바란다~~