Develop/Unity

0. 오브젝트 풀링이란? 오브젝트 풀링은 말 그대로 객체 수영장이라는 뜻이다. 예를 들어 수 많은 오브젝트를 생성해야하는 탄막슈팅게임 (이러한 게임에서는 수 많은 총알들을 생성해야 한다...) 이나, 폭파되는 연출을 위한 파티클들을 위해 오브젝트 풀링 기법을 주로 쓴다. 오브젝트들을 생성하고 파괴하는 작업은 가비지 컬렉터 때문에 메모리 상에 많은 부하를 남기게 된다. 따라서 오브젝트 풀링 기법을 활용해서 이 부하를 최소화 하는 작업이 필요하다. 1. 오브젝트 풀링 구현 전 //2D Square에 붙일 코드 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Square : MonoBehavio..
개요 유니티 게임을 만들다 보면 간혹, 통신을 위한 API가 필요한 경우가 있다. 통신을 위해서는 대표적으로 포톤을 많이 사용하지만, 이번에는 MIRROR를 사용해서 구현해 볼 생각이다. MIRROR는 유니티가 원래 제공하던 UNET이 서비스 중단되면서 이 UNET을 기반으로 만들어서 에셋 스토어에 무료로 공개된 네트워크 API이다. 추가로 Mirror 네트워크는 동시 수천명 정도 접속 할 수 있는 규모라고 한다. 수천명 단위의 MMORPG정도는 구현 가능한 서버 프로그램이라고 한다. https://assetstore.unity.com/packages/tools/network/mirror-129321 Mirror | 네트워크 | Unity Asset Store Get the Mirror package f..
예를 들어 여러 씬이 있다 가정한다. A씬에서 버튼을 눌러서 B씬으로 이동한다고 생각해보자 그렇다면 B씬은 로딩이 되고 다시 A씬으로 돌아갔다가 다시 B씬으로 갈 때 B씬의 start함수는 실행이 될까? start함수는 씬이 호출되고 메모리에 등록이 될 때 한번만 실행된다. 따라서 start함수를 여러번 동작시키고 싶다면 차라리 Database 스크립트를 만들었다면 초기화가 필요한 변수들은 함수에 등록시키고 함수를 씬이 이동할때 혹은 버튼을 눌렀을때 호출시켜주면 된다.
게임을 구현하다 보면 플레이어를 카메라 안에 가둬야 할 때가 있다. 예를 들어서 이동하는 플레이어를 따라다니지 않는 카메라인 경우 카메라는 고정되어있으니 플레이어가 계속 움직인다면 언젠가는 플레이어가 카메라 밖으로 나갈 것이다. 따라서 월드좌표계를 뷰포트 좌표계로 변환하여 플레이어를 카메라 안으로 가둘 때 사용할 수 있는 코드를 첨부한다. Vector3 pos = Camera.main.WorldToViewportPoint(transform.position); if (pos.x 1f) pos.x = 1f; if (pos.y 1f) pos.y = 1f; transform.position = Camera..
코루틴을 공부하면서 얻은것 코루틴은 게임 실행 중 제어권을 넘겨받아서 처리하는 기법? 이라고 이해는 했다. 그래서 코루틴이 뭐냐 IEnumerator FadeOut() { Color fade = fadeImg.color; for (float ff = 0f; ff < 1f;) { ff += 0.01f; fade.a = ff; fadeImg.color = fade; yield return new WaitForSeconds(0.01f); } SceneManager.LoadScene("GameScene"); } StartCoroutine(FadeOut()); IEnumerator 라는 반환값을 적어주면 자동으로 코루틴 함수가 생성된다. 항상 코루틴의 반환값은 yield return 으로 리턴하고 null값 혹은..
유니티 게임 개발 중 나중에 다른 게임에서도 쓸만한 기능이나 몰랐던 기능 떠올랐던 알고리즘 등 정리하기 위해 만든 블로그입니다. 2022.01.01 하이퍼 캐쥬얼 게임 개발중
LKM0222
'Develop/Unity' 카테고리의 글 목록 (2 Page)