[링크] 가비지컬렉션에 의한 메모리관리!
-------------------------------------------------------------------------
[답변]
http://www.unitystudy.net/bbs/board.php?bo_table=dustin&wr_id=55 참고 하셔도 좋을 것 같습니다^^유니티 스터디 펌~~
'프로그래밍 > 모르는것들!!' 카테고리의 다른 글
NGUIPlaySound 질문했을때 답변이;; (0) | 2014.01.24 |
---|---|
프로젝트 진행 중 테스트 시 끊김.. (0) | 2014.01.24 |
public 변수 초기화가 안될때! 안되는 이유! (0) | 2014.01.24 |
용량먹는 기본 파일들! (0) | 2014.01.24 |
Resources - AssetBundle을 만드는데 안드로이드타겟 추가! (0) | 2014.01.24 |
Resources - AssetBundle을 만드는데 안드로이드타겟 추가!
----------------------------------------------------------------------------------------------------
[답변]
안드로이드
BuildPipeline.BuildAssetBundle(Selection.activeObject, 오브젝트배열, 배포파일 Path, BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets, BuildTarget.Android);
'프로그래밍 > 모르는것들!!' 카테고리의 다른 글
NGUIPlaySound 질문했을때 답변이;; (0) | 2014.01.24 |
---|---|
프로젝트 진행 중 테스트 시 끊김.. (0) | 2014.01.24 |
public 변수 초기화가 안될때! 안되는 이유! (0) | 2014.01.24 |
용량먹는 기본 파일들! (0) | 2014.01.24 |
[링크] 가비지컬렉션에 의한 메모리관리! (0) | 2014.01.24 |
AssetBundle을 어떻게 써야할지 개인생각...
1. 로고 화면 띄운다.
2. 회원가입을 한다.
회원가입시 유니크코드를 준다. 그 유니크코드를 기준으로 서버에서 DB를 호출할생각.
회원가입시 유니크코드에 관련해서 AssetBundle을 각각 다르게 준다(Resource와 각 유저 고유의 AssetBundle.. 두개를 가진다)
3. 로그인을 한다.
로그인 시 로그인 데이터 중 유니크코드를 가져와서 AssetBundle이 있는지 체크(Resource와 유저 고유의 AssetBundle을 체크)한 후 Load한다.
4. Loading화면을 띄운다.
로그인에 성공 시 로딩화면을 띄우면서 AssetBundle을 호출해서 로드한다.
5. 메인 Scene 띄우기.(진행)
고유 AssetBundle을 Instantiate하고, 데이터 연동 후 화면에 출력한다.
6. 시작 전(플레이 전)
아이템을 사거나 할 경우 서버에 비동기로 연동시켜서 값을 저장,
7. 게임시작 후(플레이 후)
시작시 아이템 체크(자동사용 아이템 감소, 사용가능아이템 체크 등) 후 로딩
로딩이 끝나고 나서 게임 플레이.
8. 게임 끝
게임이 끝나고 나서 게임 정보를 보내줌(획득 돈, 경험치 등) -> 5번으로 되돌아간다.
9. 종료
고유 AssetBundle만 저장
'프로그래밍 > Unity3D' 카테고리의 다른 글
[Unity3D] (OnGUI) GUI.Label, GUI.Button (0) | 2015.04.10 |
---|---|
Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details. (0) | 2015.02.06 |
노티피케이션 로직 (0) | 2014.11.18 |
Unity3D Google InApp V2 java.lang.NoClassDefFoundError: com.android.vending.billing.IInAppBillingService$Stub (0) | 2014.11.18 |
Destroy와 DestroyImmediate (1) | 2014.01.08 |
Destroy와 DestroyImmediate
Destroy와 DestroyImmediate는 오브젝트 삭제할때 사용됨.
Destroy - Actual object destruction is always delayed until after the current Update loop, but will always be done before rendering.(Unity3D Reference 참조) / UpdateLoop가 끝난 후 삭제됨.
DestroyImmediate - 바로 삭제됨.
'프로그래밍 > Unity3D' 카테고리의 다른 글
[Unity3D] (OnGUI) GUI.Label, GUI.Button (0) | 2015.04.10 |
---|---|
Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details. (0) | 2015.02.06 |
노티피케이션 로직 (0) | 2014.11.18 |
Unity3D Google InApp V2 java.lang.NoClassDefFoundError: com.android.vending.billing.IInAppBillingService$Stub (0) | 2014.11.18 |
AssetBundle을 어떻게 써야할지 개인생각... (0) | 2014.01.18 |
[C#] MemoryPool(메모리풀)
http://cafe.naver.com/unityhub/3410 << 글 삭제됨 ㅜㅜ
http://hyunity3d.tistory.com/195
MemoryPool을 이용해서 사용하자!
오브젝트를 일반적으로 생성 - 삭제를 반복할 경우 Memory 사용량이 많아지기 때문에 MemoryPool을 이용하여 최소한의 오브젝트를 생성해놓고 사용하고 비활성화 되도록 사용하면 부담이 적어진다(불필요할만큼 많이 만들면 손해!)
MemoryPool - 메모리 공간을 미리 할당하고, 호출하게 되면 미리 할당된 공간을 반환하여 사용함
'프로그래밍 > C#' 카테고리의 다른 글
Invalid rank specifier: expected `,' or `]' (0) | 2015.02.16 |
---|---|
java.lang.IllegalStateException: Could not execute method of the activity (0) | 2014.11.25 |
error CS1519: Unexpected symbol `for' in class, struct, or interface member declaration (0) | 2014.11.04 |
자기상위오브젝트(parent object)를 호출하는 방법! (0) | 2014.01.24 |
코루틴(Coroutine)이란? Update()와 차이 (2) | 2014.01.03 |
코루틴(Coroutine)이란? Update()와 차이
Coroutine 선언
IEnumerator 함수이름(){
}
void Start(){
StartCoroutine("함수이름");
//StartCoroutine(함수이름());
}
코루틴용 데이터 |
엔진이 수행하는 기능 |
yield return null |
다음 프레임까지 대기 |
yield return new WaitForSeconds(float) |
지정된 초 만큼 대기 |
yield return new WaitForFixedUpdate() |
다음 물리 프레임까지 대기 |
yield return new WaitForEndOfFrame() |
모든 렌더링작업이 끝날 때까지 대기 |
yield return StartCoRoutine(string) |
다른 코루틴이 끝날 때까지 대기 |
yield return new WWW(string) |
웹 통신 작업이 끝날 때까지 대기 |
yield return new AsyncOperation |
비동기 작업이 끝날 때까지 대기 ( 씬로딩 ) |
일반 메소드처럼 사용 할 수 있지만, Update()와 적절히 섞어서 쓰면 프로그램 성능을 높일 수 있다.
void Update(){
time += Time.deltaTime;
if(time > 3)
// 할일
}
// 성능에 따라서 3초간 수십번을 호출을 하고 if문에서 체크를 한다.
void Start(){
StartCoroutine("TimeCheck");
}
IEnumerator TimeCheck(){
yield return new WaitForSeconds(3f);
//할일
}
// 1번 호출 후 yield return new WaitForSeconds(3f);에 의해 3초간 대기 후 할일을 한다.
내가 생각하는 주로 하는 역활
Update() : 지속적이며 불규칙한 호출이 필요한 경우
Coroutine() : 일정 규칙적으로 호출이 필요한 경우
Tip.
StartCoroutine의 사용방법은
1. StartCoroutine( " MethodName " );
2. StartCoroutine( MethodName() );
이 있는데, 1번과 같이 사용할 경우 다른 위치에서 StopCoroutine( " MethodName " ); 으로 Stop이 가능함.
참조 사이트 : http://www.unitystudy.net/bbs/board.php?bo_table=writings&wr_id=43
'프로그래밍 > C#' 카테고리의 다른 글
Invalid rank specifier: expected `,' or `]' (0) | 2015.02.16 |
---|---|
java.lang.IllegalStateException: Could not execute method of the activity (0) | 2014.11.25 |
error CS1519: Unexpected symbol `for' in class, struct, or interface member declaration (0) | 2014.11.04 |
자기상위오브젝트(parent object)를 호출하는 방법! (0) | 2014.01.24 |
[C#] MemoryPool(메모리풀) (0) | 2014.01.08 |