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

카테고리

분류 전체보기 (2737)
Unity3D (817)
Programming (474)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (228)
협업 (58)
3DS Max (3)
Game (12)
Utility (136)
Etc (96)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (53)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
04-26 06:22


TelephonyManager tel = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

     String networkOperator = tel.getNetworkOperator();
     int mcc = 0, mnc = 0;
     if (networkOperator != null) {
         mcc = Integer.parseInt(networkOperator.substring(03));
         mnc = Integer.parseInt(networkOperator.substring(3));
     }

wifi 모델은 제대로 값을 읽지 못한다는 이야기가...;;;

Locale.getDefault().getCountry(); <- KR 을 리턴함.(세팅된 언어셋을 리턴하는 것이다...;;)
이걸 받아서 아래 링크쪽에 정의된 mcc랑 매핑을 시켜서 사용해야 할 것 같음

https://android.googlesource.com/platform/frameworks/opt/telephony/+/f39de086fddea9e9f6b8c56b04d8dd38a84237db/src/java/com/android/internal/telephony/MccTable.java

IP를 통해서 국가를 얻어올 수 있는 방법이 있다.



http://api.hostip.info/get_json.php <- 현재 접속한 ip address의 국가 정보를 리턴한다.
ex) 
{"country_name":"KOREA, REPUBLIC OF","country_code":"KR","city":"Seoul","ip":"210.182.216.2"}

자세한 내용은 아래 링크를 확인
http://codereview.stackexchange.com/questions/23102/getting-country-based-on-ip

국가 이름과 mcc를 매핑한 리스트는 아래와 같다.
<item>202,gr</item>
<item>204,nl</item>
<item>206,be</item>
<item>208,fr</item>
<item>212,mc</item>
<item>213,ad</item>
<item>214,es</item>
<item>216,hu</item>
<item>218,ba</item>
<item>219,hr</item>
<item>220,rs</item>
<item>222,it</item>
<item>225,va</item>
<item>226,ro</item>
<item>228,ch</item>
<item>230,cz</item>
<item>231,sk</item>
<item>232,at</item>
<item>234,gb</item>
<item>235,gb</item>
<item>238,dk</item>
<item>240,se</item>
<item>242,no</item>
<item>244,fi</item>
<item>246,lt</item>
<item>247,lv</item>
<item>248,ee</item>
<item>250,ru</item>
<item>255,ua</item>
<item>257,by</item>
<item>259,md</item>
<item>260,pl</item>
<item>262,de</item>
<item>266,gi</item>
<item>268,pt</item>
<item>270,lu</item>
<item>272,ie</item>
<item>274,is</item>
<item>276,al</item>
<item>278,mt</item>
<item>280,cy</item>
<item>282,ge</item>
<item>283,am</item>
<item>284,bg</item>
<item>286,tr</item>
<item>288,fo</item>
<item>289,ge</item>
<item>290,gl</item>
<item>292,sm</item>
<item>293,si</item>
<item>294,mk</item>
<item>295,li</item>
<item>297,me</item>
<item>302,ca</item>
<item>308,pm</item>
<item>310,us</item>
<item>311,us</item>
<item>312,us</item>
<item>313,us</item>
<item>314,us</item>
<item>315,us</item>
<item>316,us</item>
<item>330,pr</item>
<item>332,vi</item>
<item>334,mx</item>
<item>338,jm</item>
<item>340,gp</item>
<item>342,bb</item>
<item>344,ag</item>
<item>346,ky</item>
<item>348,vg</item>
<item>350,bm</item>
<item>352,gd</item>
<item>354,ms</item>
<item>356,kn</item>
<item>358,lc</item>
<item>360,vc</item>
<item>362,ai</item>
<item>363,aw</item>
<item>364,bs</item>
<item>365,ai</item>
<item>366,dm</item>
<item>368,cu</item>
<item>370,do</item>
<item>372,ht</item>
<item>374,tt</item>
<item>376,tc</item>
<item>400,az</item>
<item>401,kz</item>
<item>402,bt</item>
<item>404,in</item>
<item>405,in</item>
<item>410,pk</item>
<item>412,af</item>
<item>413,lk</item>
<item>414,mm</item>
<item>415,lb</item>
<item>416,jo</item>
<item>417,sy</item>
<item>418,iq</item>
<item>419,kw</item>
<item>420,sa</item>
<item>421,ye</item>
<item>422,om</item>
<item>423,ps</item>
<item>424,ae</item>
<item>425,il</item>
<item>426,bh</item>
<item>427,qa</item>
<item>428,mn</item>
<item>429,np</item>
<item>430,ae</item>
<item>431,ae</item>
<item>432,ir</item>
<item>434,uz</item>
<item>436,tj</item>
<item>437,kg</item>
<item>438,tm</item>
<item>440,jp</item>
<item>441,jp</item>
<item>450,kr</item>
<item>452,vn</item>
<item>454,hk</item>
<item>455,mo</item>
<item>456,kh</item>
<item>457,la</item>
<item>460,cn</item>
<item>461,cn</item>
<item>466,tw</item>
<item>467,kp</item>
<item>470,bd</item>
<item>472,mv</item>
<item>502,my</item>
<item>505,au</item>
<item>510,id</item>
<item>514,tl</item>
<item>515,ph</item>
<item>520,th</item>
<item>525,sg</item>
<item>528,bn</item>
<item>530,nz</item>
<item>534,mp</item>
<item>535,gu</item>
<item>536,nr</item>
<item>537,pg</item>
<item>539,to</item>
<item>540,sb</item>
<item>541,vu</item>
<item>542,fj</item>
<item>543,wf</item>
<item>544,as</item>
<item>545,ki</item>
<item>546,nc</item>
<item>547,pf</item>
<item>548,ck</item>
<item>549,ws</item>
<item>550,fm</item>
<item>551,mh</item>
<item>552,pw</item>
<item>602,eg</item>
<item>603,dz</item>
<item>604,ma</item>
<item>605,tn</item>
<item>606,ly</item>
<item>607,gm</item>
<item>608,sn</item>
<item>609,mr</item>
<item>610,ml</item>
<item>611,gn</item>
<item>612,ci</item>
<item>613,bf</item>
<item>614,ne</item>
<item>615,tg</item>
<item>616,bj</item>
<item>617,mu</item>
<item>618,lr</item>
<item>619,sl</item>
<item>620,gh</item>
<item>621,ng</item>
<item>622,td</item>
<item>623,cf</item>
<item>624,cm</item>
<item>625,cv</item>
<item>626,st</item>
<item>627,gq</item>
<item>628,ga</item>
<item>629,cg</item>
<item>630,cg</item>
<item>631,ao</item>
<item>632,gw</item>
<item>633,sc</item>
<item>634,sd</item>
<item>635,rw</item>
<item>636,et</item>
<item>637,so</item>
<item>638,dj</item>
<item>639,ke</item>
<item>640,tz</item>
<item>641,ug</item>
<item>642,bi</item>
<item>643,mz</item>
<item>645,zm</item>
<item>646,mg</item>
<item>647,re</item>
<item>648,zw</item>
<item>649,na</item>
<item>650,mw</item>
<item>651,ls</item>
<item>652,bw</item>
<item>653,sz</item>
<item>654,km</item>
<item>655,za</item>
<item>657,er</item>
<item>702,bz</item>
<item>704,gt</item>
<item>706,sv</item>
<item>708,hn</item>
<item>710,ni</item>
<item>712,cr</item>
<item>714,pa</item>
<item>716,pe</item>
<item>722,ar</item>
<item>724,br</item>
<item>730,cl</item>
<item>732,co</item>
<item>734,ve</item>
<item>736,bo</item>
<item>738,gy</item>
<item>740,ec</item>
<item>742,gf</item>
<item>744,py</item>
<item>746,sr</item>
<item>748,uy</item>
<item>750,fk</item>



[출처] http://nicelee.egloos.com/m/3025913

반응형
Posted by blueasa
, |

[펌] MCC/MNC

Unity3D/Tips / 2016. 11. 30. 15:47

MCC(Mobile Country Code)와 MNC(Mobile Network Code) 쌍은 통신사를 구분하기 위한 국가-통신사 코드 조합으로 우리나라에서 많이 쓰이는 CDMA, LTE 이외에 GSM, UMTS, TETRA 등에서도 사용된다. ITU-T에서 E.212를 통해 MCC/MNC를 제안했으며, 요즘은 보통 USIM에서 위 값의 조합을 가져올 수 있다.

안드로이드의 경우, SYSTEM PROPERTIES 중 하나인 gsm.operator.numeric에서 MCC+MNC 조합인 PLMN ID를 가져올 수 있다.

만약 3자리 이상이라면, 앞의 3자리가 MCC 그 나머지를 MNC로 보면 된다.  위의 23410의 경우, 영국(234)의 O2 통신사(10)이다.

MCC를 얻는 함수 예제는 아래와 같다.

그럼 MCC/MNC는 어디에 쓸까? 보통의 서비스들은 다국어 번역만 지원하고 사용자가 셋팅에서 언어를 바꿀 수 있게 하면 된다.

하지만, 구글 플레이 스토어나 애플의 앱스토어처럼 국가마다 다른 앱이나, 캠페인을 진행하고 싶은 경우 MCC를 참조할 수 있다. 그리고 간혹 통신사만의 캠페인을 진행하는 경우 MNC를 참조할 수 있다.

그런데 왜 번거롭게 USIM의 MCC/MNC를 이용해서 서비스를 다르게 보여주려고 할까? 사용자가 접속하고자 하는 국가를 고르면 되는 것 아닌가?

마켓의 경우는 앱을 다운로드 받기 때문에 단말이 네트워크에 연결되어 있어야 한다. Wi-Fi가 아니라면 통신사 망을 통해 데이터를 전송하기 때문에  USIM의 값이 중요하다. 그리고,  USIM을 구입할 나라라면 사용자가 더 거주할 확률이 높다고 판단하기 때문으로 보인다. 마지막으로, 신용카드 결제가 아닌 핸드폰 요금에 청구되는 소액결제의 경우(P-SMS와 캐리어 빌링이 대표적이다) USIM의 통신사에 따라 결제 여부가 달라지기 때문에 마켓에서는 USIM의 데이터를 더 신뢰한다.

클래시 오브 클랜처럼 게임을 만든다면 다국어 번역만 지원하고 사용자의 현재 언어를 파악하여 언어를 보여주거나 사용자가 셋팅에서 스스로 바꿀 수 있는 방법만 제공하면 되겠다. 애플이나 구글의 인앱결제들이 어떻게든 결제를 할 수 있게 고민할테니 말이다.

그 밖에

MCC/MNC는 USIM에 저장되어 있기 때문에, USIM을 따라다닌다. 단말을 구분하고 싶다면 IMEI 값을 참고하자. 2012년 5월부터는 완전히 공개된 정보가 되어 단말의 뒷면(배터리 탈착 부분)에서 확인할 수 있다.

참조


[출처] http://sunphiz.me/wp/archives/1047

반응형
Posted by blueasa
, |

Assets/UCSS/Scripts/Protocols/HTTPProtocol.cs(20,63): error CS0234: The type or namespace name `MovieTexture' does not exist in the namespace `UnityEngine'. Are you missing an assembly reference?


유니티에 WWW wrapper 에셋(http://u3d.as/8e6)을 추가하고 안드로이드로 빌드하려고 시도하니 위와 같은 에러가 나서 뭐지 했는데


찾아보니 아래와 같은 글이 있다.

MovieTexture는 모바일에서 더이상 지원을 하지 않는다고 한다.(PC빌드 전용인가?)


as of 2015/10/6, MovieTextures are still not supported on Android and iOs


First, any code using "MovieTexture" MUST be set only for PC builds. The game I am working on is for Android and PC, so I use the following preprocessor commands:

  1. #if UNITY_ANDROID
  2. Handheld.PlayFullScreenMovie("");
  3. #else
  4. MovieTexture stuff;
  5. #endif


그래서 해당 에셋의 MovieTexture 부분에 iOS/AOS에서 안돌아가게 아래와 같이 define을 추가했다.


#if UNITY_PRO_LICENSE && !UNITY_WEBGL && !UNITY_IOS && !UNITY_ANDROID

        public EventHandlerMovieTexture     movieTextureCallback;

#endif


#if UNITY_PRO_LICENSE && !UNITY_IOS && !UNITY_ANDROID

    void GetMovie()

    {

// 중략..

    }

#endif




[참조] https://forum.unity3d.com/threads/movietexture-has-no-definition-for-iphone-android.73338/

[참조] http://answers.unity3d.com/questions/377854/why-cannot-build-movie-texture-on-android.html


반응형
Posted by blueasa
, |


[링크] http://ucss.webjema.com/http/index.html

반응형
Posted by blueasa
, |


[유니티5.x 기준 경로] 드라이브:\Users\{계정명}\AppData\Roaming\Unity\Asset Store-5.x




[참조] http://neojsm.tistory.com/8

반응형

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

[펌] 안드로이드 mcc mnc 읽어오기  (0) 2016.11.30
[펌] MCC/MNC  (0) 2016.11.30
[펌] Borderless window in standalone player  (0) 2016.11.08
[펌] Disable Screen Auto Rotation on Unity3D  (0) 2016.11.03
[링크] Unity Technologies  (0) 2016.11.01
Posted by blueasa
, |

[Link] ILSpy(.NET Decompiler)

Utility / 2016. 11. 17. 14:18



[Link] http://ilspy.net/

반응형
Posted by blueasa
, |
  • Mashimaro님
  • (2015-03-30 10:01)
    SONIC님// 
    http://en.miui.com/thread-70205-1-1.html 

    제가 참고한 사이트입니다. 

    샤오미 카메라가 공유기의 DHCP로 부터 배정 받은 IP 주소를 먼저 확인 하시고요. 
    해당 IP주소의 554 포트를 포워딩 하도록 공유시를 성정해 두시면 됩니다. 

    저는 공유기에 카메라 외에 다른 기기가 붙는 것이 없어서 그냥 DMZ 설정을 해버렸어요. 
    참고로 제가 집에 달아둔 영상의 주소를 잠시 공유해 드립니다. 

    rtsp://xxx.xxx.xxx.xxx:554/ch0_0.h264 
    안드로이드에서는 기본 동영상 플레이어가 RTSP 프로토콜을 지원하기에 웹프라으저에서 저 소를 클릭하면 자동으로 동영상 플레이어 재생이 시작되고요. 

    PC에서는 다음 팟플레이어 등의 열기 메뉴에서 '주소로 열기' 등을 선택하여 저 주소를 입력하면 화면이 보입니다. 
    (화면 좌상단에 시계가 끊임 없이 초단위로 바뀌지요. 프레임 드랍이 거의 없이 잘 보입니다) 

    이전에 샤오미 전용 앱으로 볼 때는 정말 이거 가격 만큼만 동작하는구나, 실사용은 불가할 정도로 화면이 끊겼던 것에 비하면 정말 달라도 너무 다릅니다.



    [출처] http://www.clien.net/cs2/bbs/board.php?bo_table=use&wr_id=740603

    반응형
    Posted by blueasa
    , |

    [파일]

    Clover_Setup_3.0.406.zip




    윈도우를 사용하면서 가장 불편한 것이 탐색기의 이용입니다. Microsoft도 많은 피드백을 받을텐데 여전히 고집스러운건 무슨 이유가 있는 걸까요?

    Clover 소개

    클로버(Clover)는 Chrome 브라우저와 유사한 멀티 탭 기능을 추가할 수 있는 Windows 탐색기의 확장 프로그램이다. 클로버를 설치한 후, 같은 창에서 여러 폴더를 열수 있게 되고 폴더에 북마크를 추가할 수 있게된다.

    지원사항

    • Windows XP
    • Windows 7
    • Windows 8
    • Windows 10

    Clover 설치

    클로버가 한 동안 업데이트가 없다가 다시금 업데이트가 활발히 이루어지고 있다. 설치시에 등장하는 팝업도 중문이라 알아볼 수 없을것 같아 적어둔다 : 2016-10-10

    Clover 업데이트

    최신의 클로버에는 업데이트 알림기능이 적용되어 업데이트가 있을시 설치에 필요한 사용자의 동의를 얻는다. : 2016-10-20

    업데이트 사항은 클로버 홈페이지 하단에 update 탭(영문으로 제공)에서 확인할 수 있다.

    이전에는 몰랐다가 최근 버전의 클로버를 설치후 업데이트 알림이 생긴것을 발견했다. 사용하고 있는 윈도우에게 게시자가 확인되지 않은... clxxxdsp.exe 를 실행하겠냐는 사용자계정 컨트롤러 팝업이 뜨길래 살펴보니 클로버의 업데이트 였다.

    Clover 사용법

    • Ctrl + T 를 눌러 새탭 생성 혹은 원하는 폴더에 마우스 휠 클릭
    • Ctrl + W 를 눌러 탭 종료 혹은 탭위에 마우스 휠 클릭
    • Ctrl + D 를 눌러 현재보고 있는 폴더의 경로를 복사
    • Ctrl + Tab 를 눌러 탭간 전환 혹은 탭위에 마우스 휠 굴리기

    추가된 신규 기능들

    • 탭 페이지 복사
    • Ctrl + B 로 북마크바를 보임/숨김(북마크바 쪽에 포커스가 주어져야 작동하는듯...)
    • Ctrl + N 로 새 클로버 탐색기 창을 생성
    • Ctrl + Shift + T 로 마지막 닫은 탭을 다시 복구
    • 마우스 우클릭시 나타나는 메뉴 개선
    • 드래그로 창들을 분할과 병합
    • 다양한 언어버전을 제공(한국어 없음)
    • 태그(tag)와 태그사이로 파일 및 폴더 드래그
    • 북마크들로 파일 및 폴더 드래그
    • 북마크들을 import 및 export 가능
    • 기타등등..

    북마크 추가

    북마크할 디렉토리를 북마크바로 드래그하거나 아래 그림과 같이 추가한다.

    탭 생성 및 고정

    브라우저들의 기능처럼 탭을 생성하고 원하는 폴더로 이동해 고정까지 할 수 있다. 고정해두면 탐색기 실행시 자동으로 열리게 만들 수 있으니 자주 여닫는 위치나 작업해야하는 폴더들을 고정해두고 작업능률을 높이도록 하자.

    새 탭은 아래처럼 추가한다.

    탭 생성

    탭 고정은 폴더 위치로 이동후 탭부분을 마우스 우클릭하면 아래처럼 메뉴가 등장한다.

    탭 고정

    Clover 아이콘 변경

    클로버 아이콘대신 탐색기와 클로버가 함께 있는 아이콘으로 변경한다.

     WINDOWS_EXPLORER_CLOVER.ICO

    바탕화면에 생성되어 있는 아이콘을 마우스 우클릭 > 속성

    Clover 에어로효과

    클로버에 보기좋게 에어로 효과를 적용하는 파일이다.

    관련 정보는 아래에서 확인하자.



    [출처] http://webdir.tistory.com/389

    반응형
    Posted by blueasa
    , |

    Answer by ZeroKcm 

    Autodesk has a free FBX Converter that you can use as well:

    http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=10775920




    [출처] http://answers.unity3d.com/questions/495732/is-there-a-way-to-convert-max-files-to-fbx.html

    반응형
    Posted by blueasa
    , |

    StreamingAssets 폴더는 Platform마다 다르다.

    게다가 더 기가막힌게, Application.streamingAssetsPath를 그대로 믿고 사용할 수 없다는 것이다.

    게다가 Unity 문서는 지나간 내용을 설명하고 있으며, 잘못된 내용을 설명하고 있다.

    http://docs.unity3d.com/kr/current/Manual/StreamingAssets.html

    이런~~~~


    정답은 아래와 같다.

    #if UNITY_EDITOR || UNITY_STANDALONE_WIN

    public static readonly string StreamingPath = "file://" + Application.streamingAssetsPath + "/";

    #elif UNITY_ANDROID

    public static readonly string StreamingPath = Application.streamingAssetsPath + "/";

    #elif UNITY_IOS

    public static readonly string StreamingPath = "file://" + Application.streamingAssetsPath + "/";

    #endif




    [출처] http://baramlife.tistory.com/7

    반응형
    Posted by blueasa
    , |