void Update()
{
Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
transform.position = mousePos;
}
- 공 위치를 마우스가 움직이는 곳으로 따라갈 수 있게 만들어준 함수.
- Vector2 : 2D를 나타내는 변수로 x, y좌표를 사용
- Input : 사용자의 입력을 처리해주는 클래스, 마우스/키보드/게임패드 등의 입력을 처리할 수 있으며
Input.mousePosition, Input.GetKeyDown, Input.GetMouseButtonDown과 같은 메서드를 사용 - transform.position : Vector3과 같음, 게임 오브젝트의 위치를 조회하거나 변경할 때 사용
- transform.position = mousePos; : 게임 오브젝트의 위치를 마우스 위치로 설정하는 코드
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Player"))
{
GameManager.Instance.GameOver();
}
}
- 해당 스크립트의 컴포넌트와 충돌했을때 Player태그가 입력된 컴포넌트인지 비교해보는 코드
- tag 사용도 가능하나 compareTag를 사용하였음, gameObject.tag=="player"보다 태그 비교할때 안정성이 높음
(tag사용 시 GameObject에서 문자열을 가져오기 위해 문자열의 복사본을 생성하는데 이로인해 성능이 떨어질 수 있음)
- tag 사용도 가능하나 compareTag를 사용하였음, gameObject.tag=="player"보다 태그 비교할때 안정성이 높음
- Player태그를 가진 오브젝트와 충돌했다면 게임오버 처리할 수 있게 해주는 코드
public static GameManager Instance;
- 싱글톤 처리, 게임 내에서 게임오버 처리, 점수 관리 등 게임의 상태를 일관되게 관리할 수 있음
- 싱글톤에 대하여는 아직 완벽히 이해하기 어려워 공부하면서 한번씩 더 복습할 예정임
- 참고 사이트
private void Awake()
{
if(Instance == null)
{
Instance = this;
}
}
- 게임을 시작하기 전 변수 등을 초기화하기 위해 사용, 스크립트가 실행될 때 1번 실행되는 함수
- 싱글톤 패턴의 일부, 유일한 인스턴스를 보장하기 위한 초기화 로직
- awake, start 등에 대해 간단하게 정리해두신 분이 있어 참고하고자 함
void Start()
{
Time.timeScale = 1.0f;
InvokeRepeating("MakeSquare", 0f, 1f);
}
- 게임종료 후 다시하기 버튼을 눌렀을때 게임이 다시 진행될 수 있게 해주는 코드
- 반복되게할때 InvokeRepeating("이름", 초, 반복) 식으로 작성, 뒤에 0으로 입력 시 반복이 안되어 동작하지 않게됨
이중 몇몇개는 저번 게임에서 사용햇던게 많고 사실 이번 게임 현재 진도까지는 복습하는 느낌으로 하는 기분이었다.
다만 아직 완료한 게임은 아니고 이후 진도는 새로운 부분이 많은듯 하여 진도나가기 전 복습느낌으로 작성!
근데 복습이라고 하기엔 아직도 봐도봐도 어려운 부분이 너무 많다..
'Unity > Unity Study' 카테고리의 다른 글
[Unity] 1주차, 미니 프로젝트 진행 중 (0) | 2025.01.23 |
---|---|
[Unity] 두번째 게임, '풍선을 지켜라' 마무리 (0) | 2025.01.06 |
[Unity] 나의 첫 게임, '빗물받는 르탄이' 완성! (0) | 2025.01.02 |
[Unity] 모든 작업 뒤에 저장은 필수, 그 외 (0) | 2024.12.31 |
[Unity] 2024.12.30 오늘 나의 공부는 (0) | 2024.12.30 |