반응형
길건너 친구들 게임을 만들기전 고
계속되는 맵을 만들기 위해서는 어떻게 하는게 좋을까? 싶어서 오브젝트풀 개념을 가져와봤다.
- 오브젝트 풀링은 객체를 미리 생성해 두고 필요할 때 가져다 사용하고, 사용이 끝나면 다시 풀에 반납하는 방식.
- 오브젝트 풀링은 생성과 소멸이라는 비용이 큰 작업을 최소화함으로써 성능을 향상시키는 데 중요한 역할을 한다.
- 빈번하게 생성하고 파괴되는 객체(예: 총알, 입자 등)에 대해 중요하며, 이런 객체들을 풀에 저장해 놓고 재사용함으로써 메모리 할당과 가비지 컬렉션에 따른 성능 저하를 방지할 수 있다.
- 오브젝트 풀링은 적절히 사용하면 큰 성능 개선을 가져올 수 있지만, 불필요한 메모리 사용을 증가시킬 수 있으므로 사용 시에는 신중해야한다.
오브젝트 풀링을 하는 코드.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CubeController : MonoBehaviour
{
public GameObject CubeObject;
public GameObject[] gameObjects;
private int pivot = 0;
void Start()
{
gameObjects = new GameObject[500];
for(int i = 0; i < 500; i++)
{
GameObject gameObject= Instantiate(CubeObject);
gameObjects[i] = gameObject;
gameObject.SetActive(false);
}
StartCoroutine("EnableCube");
}
IEnumerator EnableCube()
{
yield return new WaitForSeconds(0.01f);
gameObjects[pivot++].SetActive(true);
if (pivot == 500) pivot = 0;
StartCoroutine("EnableCube");
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MovingCube_Pool : MonoBehaviour
{
private Vector3 direction;
private void OnEnable()
{
transform.position = new Vector3(0, 0, 0);
StartCoroutine("DisableObject");
}
void Start()
{
direction = new Vector3(Random.Range(-0.1f, 0.1f), Random.Range(-0.1f, 0.1f), Random.Range(-0.1f, 0.1f));
StartCoroutine("DisableObject");
}
private void FixedUpdate()
{
transform.position += direction;
}
IEnumerator DisableObject()
{
yield return new WaitForSeconds(4.0f);
gameObject.SetActive(false);
}
}
>> 코드 출처
이분의 블로그를 보고 이해를 확실히 하게 되었다.
물론 알고있는 개념이긴했지만 내가 사용할때가 되니깐 어렵다고 느껴진다.....
맵을 어떻게 해야 할지..............
오늘의 회고
최종 프로젝트 팀원을 구성하게되어 간단한 회의를 진행하게 됐다.
빨리 정할 수 있을거라는 생각은 안했지만 게임의 종류만 정하는데도 반나절이 걸렸다. 이제 여기서 컨셉과 방향성을 정할때는 얼마나 걸릴까.. 빨리 일찍 구성했어서 다행이라는 생각이 들고 개인프로젝트도 해야하는데 너무 빡센 것 같아요..
반응형
'Record > TIL' 카테고리의 다른 글
[Unity] 3D 맵 오브젝트풀로 무한생성하기 (길건너 친구들) (2) | 2024.06.17 |
---|---|
[Unity] LOD (Level of Detail) (4) | 2024.06.14 |
[Unity] 토글 클릭해서 배경음악 변경하기 (0) | 2024.06.12 |
[Unity] 3D 러너게임 팀프로젝트 마무리 (Ps.일주일치고는 완벽..!) (2) | 2024.06.11 |
[Unity] 유니티 충돌시 음악 플레이 되게하기 (+트리거) (0) | 2024.06.10 |