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

카테고리

분류 전체보기 (2861)
Unity3D (899)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (192)
협업 (65)
3DS Max (3)
Game (12)
Utility (142)
Etc (99)
Link (34)
Portfolio (19)
Subject (90)
iOS,OSX (53)
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

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
, |

[펌] 논쟁할 때는..

Thinking / 2015. 12. 21. 11:38

논쟁할 때


논쟁할 때는 조용하라. 
맹렬은 잘못을 결점으로 만들고 
진실을 무례로 만들기 때문이다.

- 조지 허버트 -


논쟁은,
어떤 사람이 다른 사람과, 또는 둘 이상의 사람이 
서로 다른 견해에 대해서 
말이나 글로 옳고 그름을 따지거나 다툼을 말합니다.

그러나 그 다툼은 서로에게 상처를 입히거나 위협을 하는 것이 아니라
논리를 따져 근거를 제시해야 하는 것입니다.
자칫 논쟁을 상대에 대한 훈계나 망신주기로 착각해
무차별 공격을 하다보면
진실에서 멀어지거나 본질을 흐려놓기 때문입니다.

목소리 큰 사람이 이기는 것이 아니라
얼마나 그것에 대한 문제점을 잘 알고 대처하느냐가 관건입니다.
논쟁에서 조용한 사람을 패자로 몰거나
잘못을 시인한 것으로 착각한다면, 
그것 또한 크게 잘못된 일입니다.



출처 : http://www.torrentby.me/humor/318073

반응형
Posted by blueasa
, |

[펌] 소녀

Etc / 2015. 12. 18. 12:27

예전에 본거지만 다시봐도 좋네요.














출처 : http://www.torrentby.me/humor/317572

반응형
Posted by blueasa
, |


링크 : https://channel9.msdn.com/Events/TechDays/TDK2015/T2-3

반응형
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
, |