내용으로 건너뛰기
긴스 위키 (GINS WIKI)
tag
사용자 도구
로그인
사이트 도구
도구
문서 보기
이전 판
Fold/unfold all
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
현재 위치:
긴스 위키 GINS wiki
»
개발 언어
»
유니티3D
»
코드조각
»
gameobjectpool
추적:
검색
language:unity:코드조각:gameobjectpool
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
오브젝트 disable은 다른 부분에서 직접 호출해줘야 한다. 음 .. 음.. 왜 만든거지. <code csharp> using UnityEngine; using System.Collections; using System.Collections.Generic; public class GameObjectPool { protected Queue<GameObject> mDefautQueue; protected int mRefillTiming = 5; protected int mCntIndex = 0; protected int mMaxNumber = 20; protected GameObject mTargetPrefab; protected GameObject mParentObj; public void initQueue( GameObject parentObj_, GameObject targetObjPrefab_, int maxNum_ ) { mDefautQueue = new Queue<GameObject>(); mMaxNumber = maxNum_; mTargetPrefab = targetObjPrefab_; mParentObj = parentObj_; for( int i = 0; i < mMaxNumber; ++i ) { GameObject _newObj = GameObject.Instantiate( targetObjPrefab_, Vector3.one, Quaternion.identity ) as GameObject; _newObj.transform.parent = parentObj_.transform; _newObj.SetActive( false ); mDefautQueue.Enqueue( _newObj ); } } public void checkAvailObjectAndAutoRefill() { if( mDefautQueue.Count < mRefillTiming ) { for( int i = 0; i < (mMaxNumber / 2); ++i ) { GameObject _newObj = GameObject.Instantiate( mTargetPrefab, Vector3.one, Quaternion.identity ) as GameObject; _newObj.transform.parent = mParentObj.transform; _newObj.SetActive( false ); mDefautQueue.Enqueue( _newObj ); } } } public GameObject getObject( Vector3 initPos_, Quaternion quat_, bool reInsert_ = false ) { GameObject _gameObj = null; checkAvailObjectAndAutoRefill(); { _gameObj = mDefautQueue.Dequeue(); _gameObj.transform.position = initPos_; _gameObj.transform.localRotation = quat_; _gameObj.SetActive( true ); if( reInsert_ ) { mDefautQueue.Enqueue( _gameObj ); } } return _gameObj; } public void deactiveObject( GameObject gameObj_ ) { gameObj_.SetActive( false ); mDefautQueue.Enqueue( gameObj_ ); } public void deactiveObject( GameObject gameObj_, string deactiveFuncName ) { gameObj_.SetActive( false ); gameObj_.SendMessage( deactiveFuncName ); mDefautQueue.Enqueue( gameObj_ ); } } </code>
language/unity/코드조각/gameobjectpool.txt
· 마지막으로 수정됨: 2022/12/07 22:30 저자
kieuns
문서 도구
문서 보기
이전 판
역링크
Fold/unfold all
맨 위로