블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2845)
Unity3D (891)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (188)
협업 (64)
3DS Max (3)
Game (12)
Utility (141)
Etc (99)
Link (33)
Portfolio (19)
Subject (90)
iOS,OSX (52)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

BigNumber

Unity3D/Script / 2016. 2. 4. 16:49

[파일]


BigNumber.cs



[출처]

기억안남..;;

소스 제작자 분을 찾습니다~ -ㅁ-;

반응형
Posted by blueasa
, |

* Memory 해제 관련...

*. Prefab 을 public GameObject variable 로 연결하면 1개가 살아있다...
     - Resource 로 옮기고 Resource.Load 후 Instantiate 해준다음 Resource.UnloadUnusedAsset으로 로드했던 prefab을 해제시키자.


* Texture

- WWW 혹은 다른곳에서 load 한 texture 들은 사용하지 않을때 DestroyImmediate 로 꼭 해제시켜줘야 한다. DestroyImmediate 해주면 바로 memory 에서 해제된다.


*. GameObject Destroy 는 memory 를 바로 해제시키지 않는다.
     - Resource.UnloadUnusedAssets 를 해야 memory 에서 해제된다.
     - GameObject 를 DestroyImmediate 해도 포함되있는 Texture, material, 등은 memory에서 해제되지 않는다.

*. Load 한 Texture 들을 Member 로 가지고 있으면 GameObject Destroy 시 memory 해제 안된다.
     - Texture 는 개별 DestroyImmediate 하여 바로바로 해제하자.




반응형
Posted by blueasa
, |

GameObject.active = true;

  • StartCoroutine : OK
  • Coroutine Method : OK
  • StopAllCoroutine : OK
  • Invoke : OK
  • InvokeRepeating : OK
  • CancelInvoke : OK


GameObject.active = false;

  • StartCoroutine : Error
  • Coroutine Method : Stop (active 상태에서 돌고 있는 상태였다면 정지된다.)
  • StopAllCoroutine : OK
  • Invoke : OK
  • InvokeRepeating : OK
  • CancelInvoke : OK

** 결론

  • StartCoroutine 으로 코루틴 메소드를 열심히 돌리다가 해당 GameObject 의 active 가 꺼지면 돌던 코루틴 메소드는 정지되고 다시 active 가 켜지더라도 재실행되지 않는다.....
  • 코루틴을 많이 사용하는 로직(Async 로 돌리는 함수들..(WWW, ... 같은...))에서는 꼭 염두해 두어야 한다..
  • OnDisable() {} 에서 관련 처리를 해 주는게 좋다.
  • Invoke 관련은 GameObject 의 active 유무랑 관계없이 돌아간다..


출처 : http://limchaeng.tistory.com/34

반응형

'Unity3D > Script' 카테고리의 다른 글

[펌] Root Motion in Legacy Animation  (0) 2016.03.28
BigNumber  (0) 2016.02.04
임의시간 받아서 시간 표현하기  (0) 2015.10.28
Control ParticleSystem RenderQueue  (0) 2015.09.24
[공유] UnityBoot 프로젝트  (0) 2015.08.30
Posted by blueasa
, |

Font fallBack

Unity3D/Font / 2016. 1. 5. 09:37

1.     Unity Font fallBack 기능
현재 폰트에 표현하지 못하는 글자가 있을 때다른 폰트를 참조할 수 있도록 검색할 폰트리스트를 적어둔다.
http://forum.unity3d.com/threads/text-characters-not-visible-in-the-built-game-app.225594/

2.     예를 들어 현재 폰트가 Thai Bold폰트일 때 Thai어는 bold효과가 있지만다른 기본글자(영문자)는 효과가 없이 나온다.

따라서, fallBack기능과 더불어 사용할 때에는 우선순위를 잘 정해야 모두 Bold효과가 나올 수 있다.

3.     Unity freeType 라이브러리를 사용한다.
http://www.soen.kr/lecture/library/freetype/ft1.htm
폰트 타입에 상관없이 모든 폰트를 다루며글자마다 폰트에 있는 글자인지 판단하기 때문에
여러 글자가 섞여 있어도 fallBack List의 폰트를 가져오게 된다.

4.     지금까지의 테스트로는 Noto Sans CJK를 기본으로 Noto Sans Thai fallBack List에 추가를 하여 사용하는 것이 
가장 좋은 것 같다.

 

Noto Sans : 영문자스페인어 지원 / 한글중국어는 기본 텍스트 또는 안나올지도

Noto Sans CJK : 중국일본한국어영문자스페인어 타이어 안나옴

Noto Sans Thai : 타이어 / 한글영문자 기본 텍스트 또는 안나올지도







Noto Sans CJK와 Noto Sans Thai를 assetBundle로 구성하여 패치로 다운 받게 했더니 fallBack 기능이 안되었다.

용량이 작은 Noto Sans Thai를 apk에 포함 시킨 채 , Noto Sans CJK만 assetBundle로 구성하였더니 되는 듯..


단, Noto Sans CJK를 assetBundle로 load할 때 fontNames를 설정 해야 한다.




출처 : http://jenemia.tistory.com/315

반응형
Posted by blueasa
, |

이거 해결하려고 죽는줄 알았다........


이번 게임을 제작하면서 facebook sdk plugin과 googlePlay sdk plugin 을 함께 사용하였다. 


이클립스에 손안대고 쉽게 코딩을 하려 plugin을 사용하였는데 생각지도 못했던 AndroidManifest.xml에서의 Activity충돌 문제가 발생하였다. 


AndroidManifest.xml에서 무언가 답이 있지 않을까 고민하여...

수정하고 빌드돌리고 폰에 넣고.. 테스트하고.. 

수정하고 빌드돌리고 폰에 넣고.. 테스트하고.. 

수정하고 빌드돌리고 폰에 넣고.. 테스트하고.. 

수정하고 빌드돌리고 폰에 넣고.. 테스트하고.. 

수정하고 빌드돌리고 폰에 넣고.. 테스트하고.. 

안된다. 그 어떤 방법을 해보아도 안된다.. ㅋㅋ



그리고 많은 사이트와 많은 구글링을 통하여 힌트를 얻었다. 


그리하여 내가 얻은 결론은,

나만의 MainActivity를 작성하여야 한다!!!!!!!

진리다! 방법 없다. 

귀찮아도 어쩔수없다. 거진 3일을 소비하여 다른방법을 갈구해 보았으나 없다. 방법은 이것뿐이다!!!!


생각보단 양이 되어 보이지만 따라하다보면 금방 해결할 수 있을 것이다.



참고한 사이트

나와 동일한 문제. 허나 이대로하면 문제있음.

http://stackoverflow.com/questions/18970822/conflict-with-activity-tags-on-android-manifest-facebook-and-google-play-games/18971204#18971204


Activity생성방법

http://sungho0459.blog.me/40167910950


우선 위의 두 링크를 참고하길 바란다.


첫번째 링크에서 보면 아래와 같이 설명하고 있다.


import android.content.Intent;
import android.os.Bundle;
import com.facebook.Session;

public class MyMainUnityPlayerActivity extends com.bfsgooglegames.GoogleGamesUnityPlayerActivity {
  @Override
  protected void onCreate(Bundle arg0) {
    super.onCreate(arg0);
  }

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
  } 
}

근데 이대로하면 역시나 문제 생긴다.


이유는 facebook.Session자체가 아직 null이기 때문이다!!!! 



그러므로 완성되어야할 소스는 바로,


package com.snowberry01.blockbind;

import android.content.Intent;
import android.os.Bundle;
import com.facebook.Session;
import com.unity3d.player.UnityPlayerNativeActivity;

public class MainActivity extends UnityPlayerNativeActivity {
  @Override
  protected void onCreate(Bundle arg0) {
    super.onCreate(arg0);
  }

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    
    if( null != Session.getActiveSession() )
    {	
    	Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
    }
  } 
}


이리하여 아무런 문제없이 facebook sdk와 googlePlay sdk를 함께 사용하였다.

( 참고로 위의 소스는 실제 나의 소스에서 발취한 것 )


그리고 AndroidManifest.xml는, (그외 다른 소스부분은 뺏음)


<activity android:name="com.snowberry01.blockbind.MainActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" /> </activity> <activity android:name="com.facebook.unity.FBUnityPlayerActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> </activity>


보면 FBUnityPlayerActivity를 메인으로 두질 않아도 잘 된다.



이거 해결하느라 정말 죽는 줄 알았다......



ps - 도움이 되셨으면 제가 만든 게임좀 받아주시고.... (아래에 링크)

(구걸.. 전체다운수 40개도안됨;;) 리뷰 한줄 부탁드립니다!!^^


구글플레이 링크

https://play.google.com/store/apps/details?id=com.snowberry01.blockbind



출처 : http://snowberrydev.tistory.com/2

반응형

'Unity3D > Tips' 카테고리의 다른 글

[펌] Find references in scene  (0) 2016.02.26
Texture, Resource.... and Memory!!  (0) 2016.01.07
유니티 admob 클릭이 안되는 경우  (0) 2016.01.04
Animation(Legacy) 최적화  (0) 2015.11.16
코루틴(Coroutine)++  (0) 2015.10.19
Posted by blueasa
, |

#유니티에 넣은 admob 이 클릭이 안되는 경우


1. 방법1


- AndroidManifest.xml 파일을 보면 아래와 같은 태그가 있다. value 값이 false 로 되어 있다면 true 로 바꾼다.


<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />


 


2. 방법2


-위의 방법으로 해결이 되지 않을 경우 해당 태그의 위치를 아래와 같은 곳으로 이동 시킨다.


        <activity android:name="com.unity3d.player.UnityPlayerProxyActivity"

                  android:label="@string/app_name"

                  android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

            <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />

        </activity>






반응형
Posted by blueasa
, |
안녕하세요. 오리진 스튜디오의 넷드론 엔진 개발자 입니다.
저는 과거 PC 온라인 게임을 몇번정도... 초기부터 상용화(MMORPG, TPS)를 시켜봤었습니다.

이러한 경험들을 바탕으로 모바일 환경(Unity Editor)을 위한 Real-Time Interaction을 구현 하였고, 완벽한 처리를 할수있는 구조의 네트워크 엔진을 개발하여 지난주 에셋스토어 검수를 통과하였습니다.

클라이언트: Unity Editor (Only C#)
서버: Linux + Eclipse (CentOS, Ubuntu, Gentoo ... , C/C++)

저희 포럼에 오시면 언제든지 넷드론 엔진에 대한 질문 및 토론이 가능합니다.
아직 위키에 올릴 기술문서들은 정리중이지만...
에셋스토어 패키지 안의 영문/한글 메뉴얼을 참고하시면 테스트 및 개발이 가능합니다.

저희 포럼의 다운로드 메뉴를 클릭하시어 무료 데모 버전 테스터를 실행해보세요.

채널/룸 에 대한 다중 처리, 주고 받는 최적화된 패킷 크기(NDP), Ping/Pong 속도 측정, 예외상황 처리, 모바일 테스트, 기타 등등... 많은 테스트를 진행할수 있으며 에셋스토어(NetDrone For Unity) 패키지 안 셈플들과 동일한 소스를 사용하였습니다.

* C#으로 제작된 클라이언트용 네트워크 엔진은 Poll을 사용하고 있으며 매우 빠른 반응 속도를 보여줍니다.
* C/C++로 제작된 서버용 네트워크 엔진은 Epoll을 사용하고 있으며 매우 안정적인 작동을 하게됩니다.
* 그외 게임 개발에 대한 고급 설계법 및 예제들을 포함하고 있어 많은 도움이 되실것이라 생각합니다.

에셋스토어: http://u3d.as/mzz



출처 : http://goo.gl/Xw3ZoH

반응형
Posted by blueasa
, |


[참조]

http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_QnA_etc&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=3216



[링크]

 https://www.assetstore.unity3d.com/kr/#!/content/41707

반응형
Posted by blueasa
, |

[링크]


Unity3D :: Live2D 적용 및 튜토리얼 #1


Unity3D :: Live2D 적용 및 튜토리얼 #2


Unity3D :: Live2D 성능 이슈

반응형

'Unity3D > Plugins' 카테고리의 다른 글

[에셋] 유니티용 네트워크 엔진(넷드론)  (0) 2016.01.04
[에셋] Android Keyboard (with NGUI)  (0) 2015.12.23
Unity3D Debug console with color  (0) 2015.09.24
SVG Importer  (0) 2015.09.10
WebView 플러그인 Awesomium(HTML UI Engine)  (3) 2015.08.05
Posted by blueasa
, |

[원본 링크]

http://kheldon.tistory.com/2



올려진 파일은 공유해주신 위 원본링크의 소스를 개조해서 사용중입니다.(공유 감사합니다.)


[개조파일]

CUIListView.cs




[추가사항]

- SetFocusOnCenter 추가.

- WidgetBound 대신 BoxCollier를 ItemSize로 사용.

- Vertical에서 아이템이 아래로 붙는 문제 수정(위로 붙게..)


[추가사항] 2018-07-27

- ScrollBar 터치 로직 추가


반응형
Posted by blueasa
, |