블로그 이미지
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-27 14:56

[수정] 2021-06-10

Height 값 참조 오류 수정(참조 값 manualHeight -> activeHeight로 변경)

 

[스크립트 파일]

UISafeAreaOffsetController.cs
0.00MB

 

아래 위치와 같이 Anchor의 하위에 GameObject를 하나 만들고,

인스펙터와 같이 Top/Bottom에 따라 만들어진 GameObeject를 Drag&Drop 해서 Link 한다.

 

 

위와 같이 셋팅해 주면 Fan이 Top쪽 Safe Area가 있으면 그에 맞게 좀 더 내려온다

(Bottom은 같은 형태로 List Offset List_Bottom에 Link 해주면 된다.)

 

대충 만들어서 넣어놔서 정리좀 하고 싶지만 다음 기회로..

필요하신 분은 받아서 써보시고 개량해서 공유 좀 해주세요~

 

 

[참조] https://blueasa.tistory.com/2272

반응형
Posted by blueasa
, |

[링크]

http://blog.naver.com/simtt/220851899973

 

[Unity] 유니티 Local Notification을 활용해보자

iOS의 경우 Unity 자체에서 로컬 알람 기능을 제공해준다. 안드로이드는 직접 구현할 수도 있지만, 그냥...

blog.naver.com

 

반응형
Posted by blueasa
, |

Firebase를 앱에 추가 및 Firebase Console에서 설정을 다 하고나서


Android는 FA에서 제대로 체크가 되고 있는데

iOS는 FA에 뜨질 않아서 삽질 하던 중 알게 된 내용 정리해 놓음.


[참조1] https://firebase.google.com/docs/analytics/ios/start?hl=ko

FA에서는 위 참조1 링크의 설명과 같이 iOS의 XCode에서 작업하는 내용을 설명하고 있다.


설명에는 AppDelegate 파일이라고 돼있지만,

유니티에서 Export 된 XCode 프로젝트는 파일명이 약간 달라서 UnityAppController.mm 파일에서 application:(UIApplication*) didFinishLaunchingWithOptions 를 찾을 수 있다.


내 경우는 OBJECTIVE-C 여서 아래와 같은 소스를 UnityAppController.mm에 추가해서 빌드하니 FA에 잘 뜨는 걸 확인 했다.


@import Firebase;
// Use Firebase library to configure APIs
[FIRApp configure];



근데 유니티로 빌드하는데 네이티브인 XCode에서 항상 소스를 수정해줘야 된다는 건 귀찮기 때문에 유니티에서 그냥 셋팅하는 방법이 없나 하고 삽질하다가 찾아낸 방법이 아래와 같다.



[참조2] https://github.com/firebase/quickstart-unity/issues/91

참조2 링크 내용을 보면 FirebaseAnalytics.SetAnalyticsCollectionEnabled(true); 부분이 있다.

XCode에서 셋팅을 하지 않고, 유니티 실행 시 Firebase Analytics를 켤 수 있는 것 같다.


Firebase.Analytics.FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);


namespace를 포함해서 위와 같이 앱 실행 시작 부분에서 실행하도록 해주고나서 iOS 앱에서도 FA 체크가 잘되는 걸 확인 완료.



반응형
Posted by blueasa
, |

리모트 프로파일링(Remote profiling)은 다음의 스텝들에 의해서 iOS에 가능화 됩니다:

  1. iOS디바이스를 WiFi 네트워크에 연결하십시오. (로컬/임시(adhoc) WiFi 네트워크는 디바이스로부터의 프로파일링 데이터를 유니티 에디터로 보내기 위해서 프로파일에 의해 사용됩니다.)
  2. 유니티의 빌드 설정(build setting) 대화창의 "Autoconnect Profiler" 체크박스를 표시하십시오.
  3. 디바이스를 맥에 케이블로 부착하여 유니티 에디터의 "Build & Run"를 클릭하세요.
  4. 어플리케이션이 디바이스에서 실행할 때, 유니티 에디터의 프로파일러 창을 여십시오.(Window→Profiler)

_주의:_ 가끔 유니티 에디터는 디바이스로 자동 커넥트(autoconnect) 못할 수도 있습니다. 그런 경우는, 해당 디바이스를 선택하고 프로파일러 창에서 Active Profiler 드롭 다운 메뉴로부터 프로파일러 접속이 시작될 수 있습니다.



[출처] https://openwiki.kr/unity/profiler

반응형
Posted by blueasa
, |

UnityEngine.iOS.Device.generation 체크


[참조1] https://docs.unity3d.com/kr/current/ScriptReference/iOS.Device-generation.html

[참조2] https://docs.unity3d.com/kr/current/ScriptReference/iOS.DeviceGeneration.html

반응형
Posted by blueasa
, |

XCode 최신 버전으로 업데이트 하고나서 빌드 하려니 GA 관련 Link 에러가 나서 찾아봤더니 아래 프레임워크가 필요하다고 한다.


리스트를 살펴보니 CoreData.framework가 빠져 있어서 수동 추가 후 정상 빌드 확인..




The Google Analytics SDK uses the CoreData and SystemConfiguration frameworks, so you will need to add the following to your application target's linked libraries:

  • libGoogleAnalyticsServices.a
  • AdSupport.framework
  • CoreData.framework
  • SystemConfiguration.framework
  • libz.dylib



[출처] https://stackoverflow.com/questions/22008892/google-analytics-doesnt-work-on-new-ios-project

반응형
Posted by blueasa
, |
국가코드 (Country Code)
 
ISO 3166-1 numeric: 세 개의 아라비아 숫자로 구성된 국가 코드이다. 국제 연합의 통계학상의 분배에 의해 생성되었다.
ISO 3166-1 alpha-2: 알파벳 두 글자로 구성되며 수많은 곳에 적용된다. 특히 대부분의 인터넷 국가 도메인에 적용된다.
ISO 3166-1 alpha-3: 알파벳 세 글자로 구성된 국가 코드이다.



나라 이름 숫자 alpha-3 alpha-2
가나 가나 288 GHA GH
가봉 가봉 266 GAB GA
가이아나 가이아나 328 GUY GY
감비아 감비아 270 GMB GM
건지 섬 건지 섬 831 GGY GG
과들루프 과들루프 312 GLP GP
과테말라 과테말라 320 GTM GT
괌  316 GUM GU
그레나다 그레나다 308 GRD GD
그리스 그리스 300 GRC GR
그린란드 그린란드 304 GRL GL
기니 기니 324 GIN GN
기니비사우 기니비사우 624 GNB GW
나미비아 나미비아 516 NAM NA
나우루 나우루 520 NRU NR
나이지리아 나이지리아 566 NGA NG
남극 남극 010 ATA AQ
남수단 남수단 728 SSD SS
남아프리카 공화국 남아프리카 공화국 710 ZAF ZA
네덜란드 네덜란드 528 NLD NL
네덜란드령 안틸레스 네덜란드령 안틸레스 530 ANT AN
네팔 네팔 524 NPL NP
노르웨이 노르웨이 578 NOR NO
노퍽 섬 노퍽 섬 574 NFK NF
누벨칼레도니 누벨칼레도니 540 NCL NC
뉴질랜드 뉴질랜드 554 NZL NZ
니우에 니우에 570 NIU NU
니제르 니제르 562 NER NE
니카라과 니카라과 558 NIC NI
대한민국 대한민국 410 KOR KR
덴마크 덴마크 208 DNK DK
도미니카 연방 도미니카 연방 212 DMA DM
도미니카 공화국 도미니카 공화국 214 DOM DO
독일 독일 276 DEU DE
동티모르 동티모르 626 TLS TL
라오스 라오스 418 LAO LA
라이베리아 라이베리아 430 LBR LR
라트비아 라트비아 428 LVA LV
러시아 러시아 643 RUS RU
레바논 레바논 422 LBN LB
레소토 레소토 426 LSO LS
레위니옹 레위니옹 638 REU RE
루마니아 루마니아 642 ROU RO
룩셈부르크 룩셈부르크 442 LUX LU
르완다 르완다 646 RWA RW
리비아 리비아 434 LBY LY
리투아니아 리투아니아 440 LTU LT
리히텐슈타인 리히텐슈타인 438 LIE LI
마다가스카르 마다가스카르 450 MDG MG
마르티니크 마르티니크 474 MTQ MQ
마셜 제도 마셜 제도 584 MHL MH
마요트 마요트 175 MYT YT
마카오 마카오 446 MAC MO
마케도니아 공화국 마케도니아 공화국 807 MKD MK
말라위 말라위 454 MWI MW
말레이시아 말레이시아 458 MYS MY
말리 말리 466 MLI ML
맨 섬 맨 섬 833 IMN IM
멕시코 멕시코 484 MEX MX
모나코 모나코 492 MCO MC
모로코 모로코 504 MAR MA
모리셔스 모리셔스 480 MUS MU
모리타니 모리타니 478 MRT MR
모잠비크 모잠비크 508 MOZ MZ
몬테네그로 몬테네그로 499 MNE ME
몬트세랫 몬트세랫 500 MSR MS
몰도바 몰도바 498 MDA MD
몰디브 몰디브 462 MDV MV
몰타 몰타 470 MLT MT
몽골 몽골 496 MNG MN
미국 미국 840 USA US
미국령 군소 제도 미국령 군소 제도 581 UMI UM
미국령 버진아일랜드 미국령 버진아일랜드 850 VIR VI
미얀마 미얀마 104 MMR MM
미크로네시아 연방 미크로네시아 연방 583 FSM FM
바누아투 바누아투 548 VUT VU
바레인 바레인 048 BHR BH
바베이도스 바베이도스 052 BRB BB
바티칸 시국 바티칸 시국 336 VAT VA
바하마 바하마 044 BHS BS
방글라데시 방글라데시 050 BGD BD
버뮤다 버뮤다 060 BMU BM
베냉 베냉 204 BEN BJ
베네수엘라 베네수엘라 862 VEN VE
베트남 베트남 704 VNM VN
벨기에 벨기에 056 BEL BE
벨라루스 벨라루스 112 BLR BY
벨리즈 벨리즈 084 BLZ BZ
보스니아 헤르체고비나 보스니아 헤르체고비나 070 BIH BA
보츠와나 보츠와나 072 BWA BW
볼리비아 볼리비아 068 BOL BO
부룬디 부룬디 108 BDI BI
부르키나파소 부르키나파소 854 BFA BF
부베 섬 부베 섬 074 BVT BV
부탄 부탄 064 BTN BT
북마리아나 제도 북마리아나 제도 580 MNP MP
불가리아 불가리아 100 BGR BG
브라질 브라질 076 BRA BR
브루나이 브루나이 096 BRN BN
사모아 사모아 882 WSM WS
사우디아라비아 사우디아라비아 682 SAU SA
사우스조지아 사우스샌드위치 제도 사우스조지아 사우스샌드위치 제도 239 SGS GS
산마리노 산마리노 674 SMR SM
상투메 프린시페 상투메 프린시페 678 STP ST
생피에르 미클롱 생피에르 미클롱 666 SPM PM
서사하라 서사하라 732 ESH EH
세네갈 세네갈 686 SEN SN
세르비아 세르비아 688 SRB RS
세이셸 세이셸 690 SYC SC
세인트루시아 세인트루시아 662 LCA LC
세인트빈센트 그레나딘 세인트빈센트 그레나딘 670 VCT VC
세인트키츠 네비스 세인트키츠 네비스 659 KNA KN
세인트헬레나 세인트헬레나 654 SHN SH
소말리아 소말리아 706 SOM SO
솔로몬 제도 솔로몬 제도 090 SLB SB
수단 수단 736 SDN SD
수리남 수리남 740 SUR SR
스리랑카 스리랑카 144 LKA LK
스발바르 얀마옌 제도 스발바르 얀마옌 744 SJM SJ
스와질란드 스와질란드 748 SWZ SZ
스웨덴 스웨덴 752 SWE SE
스위스 스위스 756 CHE CH
스페인 스페인 724 ESP ES
슬로바키아 슬로바키아 703 SVK SK
슬로베니아 슬로베니아 705 SVN SI
시리아 시리아 760 SYR SY
시에라리온 시에라리온 694 SLE SL
싱가포르 싱가포르 702 SGP SG
아랍에미리트 아랍에미리트 784 ARE AE
아루바 아루바 533 ABW AW
아르메니아 아르메니아 051 ARM AM
아르헨티나 아르헨티나 032 ARG AR
아메리칸사모아 아메리칸사모아 016 ASM AS
아이슬란드 아이슬란드 352 ISL IS
아이티 아이티 332 HTI HT
아일랜드 아일랜드 372 IRL IE
아제르바이잔 아제르바이잔 031 AZE AZ
아프가니스탄 아프가니스탄 004 AFG AF
안도라 안도라 020 AND AD
알바니아 알바니아 008 ALB AL
알제리 알제리 012 DZA DZ
앙골라 앙골라 024 AGO AO
앤티가 바부다 앤티가 바부다 028 ATG AG
앵귈라 앵귈라 660 AIA AI
에리트레아 에리트레아 232 ERI ER
에스토니아 에스토니아 233 EST EE
에콰도르 에콰도르 218 ECU EC
에티오피아 에티오피아 231 ETH ET
엘살바도르 엘살바도르 222 SLV SV
영국 영국 826 GBR GB
영국령 버진아일랜드 영국령 버진아일랜드 092 VGB VG
영국령 인도양 지역 영국령 인도양 지역 086 IOT IO
예멘 예멘 887 YEM YE
오만 오만 512 OMN OM
오스트레일리아 오스트레일리아 036 AUS AU
오스트리아 오스트리아 040 AUT AT
온두라스 온두라스 340 HND HN
올란드 제도 올란드 제도 248 ALA AX
요르단 요르단 400 JOR JO
우간다 우간다 800 UGA UG
우루과이 우루과이 858 URY UY
우즈베키스탄 우즈베키스탄 860 UZB UZ
우크라이나 우크라이나 804 UKR UA
왈리스 퓌튀나 왈리스 퓌튀나 876 WLF WF
이라크 이라크 368 IRQ IQ
이란 이란 364 IRN IR
이스라엘 이스라엘 376 ISR IL
이집트 이집트 818 EGY EG
이탈리아 이탈리아 380 ITA IT
인도네시아 인도네시아 360 IDN ID
인도 인도 356 IND IN
일본 일본 392 JPN JP
자메이카 자메이카 388 JAM JM
잠비아 잠비아 894 ZMB ZM
저지 섬 저지 섬 832 JEY JE
적도 기니 적도 기니 226 GNQ GQ
조선민주주의인민공화국 조선민주주의인민공화국 408 PRK KP
조지아 (국가) 조지아 268 GEO GE
중앙아프리카 공화국 중앙아프리카 공화국 140 CAF CF
중화민국 중화민국 158 TWN TW
중화인민공화국 중화인민공화국 156 CHN CN
지부티 지부티 262 DJI DJ
지브롤터 지브롤터 292 GIB GI
짐바브웨 짐바브웨 716 ZWE ZW
차드 차드 148 TCD TD
체코 체코 203 CZE CZ
칠레 칠레 152 CHL CL
카메룬 카메룬 120 CMR CM
카보베르데 카보베르데 132 CPV CV
카자흐스탄 카자흐스탄 398 KAZ KZ
카타르 카타르 634 QAT QA
캄보디아 캄보디아 116 KHM KH
캐나다 캐나다 124 CAN CA
케냐 케냐 404 KEN KE
케이맨 제도 케이맨 제도 136 CYM KY
코모로 코모로 174 COM KM
코스타리카 코스타리카 188 CRI CR
코코스 제도 코코스 제도 166 CCK CC
코트디부아르 코트디부아르 384 CIV CI
콜롬비아 콜롬비아 170 COL CO
콩고 공화국 콩고 공화국 178 COG CG
콩고 민주 공화국 콩고 민주 공화국 180 COD CD
쿠바 쿠바 192 CUB CU
쿠웨이트 쿠웨이트 414 KWT KW
쿡 제도 쿡 제도 184 COK CK
크로아티아 크로아티아 191 HRV HR
크리스마스 섬 크리스마스 섬 162 CXR CX
키르기스스탄 키르기스스탄 417 KGZ KG
키리바시 키리바시 296 KIR KI
키프로스 키프로스 196 CYP CY
타이 타이 764 THA TH
타지키스탄 타지키스탄 762 TJK TJ
탄자니아 탄자니아 834 TZA TZ
터크스 케이커스 제도 터크스 케이커스 제도 796 TCA TC
터키 터키 792 TUR TR
토고 토고 768 TGO TG
토켈라우 토켈라우 772 TKL TK
통가 통가 776 TON TO
투르크메니스탄 투르크메니스탄 795 TKM TM
투발루 투발루 798 TUV TV
튀니지 튀니지 788 TUN TN
트리니다드 토바고 트리니다드 토바고 780 TTO TT
파나마 파나마 591 PAN PA
파라과이 파라과이 600 PRY PY
파키스탄 파키스탄 586 PAK PK
파푸아 뉴기니 파푸아 뉴기니 598 PNG PG
팔라우 팔라우 585 PLW PW
팔레스타인 팔레스타인 275 PSE PS
페로 제도 페로 제도 234 FRO FO
페루 페루 604 PER PE
포르투갈 포르투갈 620 PRT PT
포클랜드 제도 포클랜드 제도 238 FLK FK
폴란드 폴란드 616 POL PL
푸에르토리코 푸에르토리코 630 PRI PR
프랑스 프랑스 250 FRA FR
프랑스령 기아나 프랑스령 기아나 254 GUF GF
프랑스령 남부와 남극 지역 프랑스령 남부와 남극 지역 260 ATF TF
프랑스령 폴리네시아 프랑스령 폴리네시아 258 PYF PF
피지 피지 242 FJI FJ
핀란드 핀란드 246 FIN FI
필리핀 필리핀 608 PHL PH
핏케언 제도 핏케언 제도 612 PCN PN
허드 맥도널드 제도 허드 맥도널드 제도 334 HMD HM
헝가리 헝가리 348 HUN HU
홍콩 홍콩 344 HKG HK

 

국가코드표 엑셀 다운로드

 

국가코드표_20140828.xlsx
다운로드

 

 

 

 

[출처]  http://ko.wikipedia.org/wiki/ISO_3166-1

 

ISO 3166-1 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. ISO 3166-1은 ISO 3166 표준의 일부로, 세계의 나라와 부속 영토, 국가의 주요 구성 단위의 명칭에 고유 부호를 부여한다. 국가나 부속 영토의 이름이 바뀌면 보통 새

ko.wikipedia.org

 

[영문 참조] https://en.wikipedia.org/wiki/ISO_3166-1

 

ISO 3166-1 - Wikipedia

From Wikipedia, the free encyclopedia ISO standard for country codes ISO 3166-1 (Codes for the representation of names of countries and their subdivisions – Part 1: Country codes) is a standard defining codes for the names of countries, dependent territo

en.wikipedia.org



출처: http://devbible.tistory.com/350 [devbible]

 

[Tips] 국가코드표 Country Code (숫자, 문자두자리, 문자세자리)

국가코드 (Country Code) ISO 3166-1 numeric: 세 개의 아라비아 숫자로 구성된 국가 코드이다. 국제 연합의 통계학상의 분배에 의해 생성되었다.ISO 3166-1 alpha-2: 알파벳 두 글자로 구성되며 수많은 곳에 적

devbible.tistory.com

 

반응형
Posted by blueasa
, |

DeployGate App을 찾아보니 AOS는 있는데

[DeplayGate AOS App] https://play.google.com/store/apps/details?id=com.deploygate&hl=ko


 iOS App이 없어서 찾아보니 따로 설치해야 돼서 정리해 놓음.



[DeplayGate iOS App 설치]


1) 아이폰-사파리에서 아래 주소로 접속한다.(사파리에서 해야됨)

   [링크] https://deploygate.com/connect/iphones



2) 아직 로그인하지 않은 경우 로그인 화면이 뜬다. 로그인 해주자.

   (회원가입이 안했으면 우선 회원가입부터..)



2) 사파리에서 열면 아래 스샷처럼 나온다.

   'Install DeployGate'를 누르자.



3) 진행하면 '프로파일 설치' 화면이 뜬다.

   얘도 설치해주자.




4) 설치하고나면 아래와 같은 화면이 보인다.

   아직 올린게 없어서 아무것도 없는 상태다. 업로드는 홈페이지(https://www.deploygate.com) 가서 올리면 됨.






[iOS App 설치 참조]

https://deploygate.uservoice.com/knowledgebase/articles/418294-ios%E7%89%88%E3%81%AEdeploygate%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86

반응형
Posted by blueasa
, |

출처 - http://docs.unity3d.com/Documentation/Manual/iphone-playerSizeOptimization.html -


iOS 플레이어 빌드 사이즈 최적화 하기.

빌드 사이즈를 줄이는 방법은 크게 두 가지가 있습니다. Xcode에서 Active Build Configuration을 조절하는 방법과 Unity에서 Stripping Level을 조절하는 방법입니다.

 

Relese Mode로 빌드 하기.

Xcode에서 빌드 할 때Active Build Configuration 드롭다운 메뉴에서 Debug 와 Release 옵션을 선택할 수 있습니다. Debug Mode 대신 Release Mode로 빌드를 하면 게임에 따라서 2-3MB 정도의 빌드 크기가 줄어듭니다.

1.jpg

The Active Build Configuration drop-down -

Release Mode로 빌드를 하게 되면 Debug 정보 없이 빌드를 하기 때문에게임이 크래쉬가 발생하거나 다른 문제가 생겼을 때 Stack Trace 등의 정보를Output으로 확인할 수가 없습니다

제작이 완료돼서 배포를 하는 게임의 경우에는 문제가 되지 않겠지만개발 중에는 Debug Mode가 유용합니다.


iOS Stripping Level (Advanced License feature)

Stripping Level 을 조절해서 빌드 크기를 최적화 하는 방법은 아래와 같은 방법으로 진행이 됩니다.

1. Strip assemblies level: 스크립트의 Bytecode를 분석해서해당 클래스와 메소드가 참조가 되는지 여부를 확인하고참조되지 않는 부분은 DLL에서 제거되고, AOT 컴파일 단계에서 제외 됩니다이 최적화 방법은 Main binary의 크기와 수반되는 DLL을 줄이는 방법으로리플렉션을 사용하지 않는 한 안전한 방법입니다.

2. Strip ByteCode level: (Data 폴더에 저장되는)모든 .Net DLLmetadata strip되어 크기가 줄어듭니다모든 코드가 AOT 단계에서 미리 전처리(precompiled)가 되고, main binary에 링크가 되기 때문에 이 방법이 가능하게 됩니다.

3. Use micro mscorlib: 특별한 경우로, mscorlib smaller 버전을 사용하는 방법입니다.

이 라이브러리에서는 일부 컴포넌트가 제외된 버전입니다.

예를 들어, Security, Reflection.Emit, Remoting, non Gregorian calendars 등이 제외됩니다.

또한 내부 컴포넌트간의 상호의존성이 줄어들게 됩니다이 방법은 main binary mscorlib.dll의 크기를 줄이는 방법이지만 일부 System 및 System.Xml 어셈블리 클래스에서는 호환이 되지 않으니 주의를 해야 합니다.

 Level들은 축적이 됩니다다시 말해서, Level 3 최적화 방법은 Level 2  Level 1을 내포하고, Level 2 최적화 방법은 Level 1을 포함합니다.

주의: Micro mscorlib  core 라이브러리의 크기를 많이 줄인 버전입니다. micro mscorlib 를 사용할 때 가장 좋은 방법은 제작중인 어플리케이션에서 사용하지 않는 .Net 클래스와 기능들을 사용하지 않는 것입니다제외할 예로 GUID가 가장 좋은 예시가 될 것 같습니다. GUID를 직접 만들어서 대체 사용이 쉽고직접 제작해서 사용하는 경우 성능 면에서 앱 사이즈를 줄이는 면에서도 모두 좋은 결과를 낼 수 있습니다.


Tips

리플렉션을 사용할 때 Stripping 조절하는 방법

Stripping static code analysis에 많이 의존하는 방법이기 때문에효율적으로 진행이 되지 않는 경우가 종종 발생합니다.

한 예로 리플렉션과 같은 dynamic 기능이 사용되는 경우입니다이런 경우사용하거나 참조해야 하지 않는 클래스 등을 명시 하는 것이 필수적입니다.

유니티는 프로젝트 별로 따로 custom stripping blacklist를 지원합니다. blacklist를 사용하면 link.xml 파일을 생성하고 Assets 폴더에 두어야 합니다. link.xml 파일의 예제를 아래에서 확인할 수 있습니다보존(preservation)되어야 한다고 명시된 클래스들은 stripping에 영향을 받지 않게 됩니다.

<linker>

       <assembly fullname="System.Web.Services">

               <type fullname="System.Web.Services.Protocols.SoapTypeStubInfo" preserve="all"/>

               <type fullname="System.Web.Services.Configuration.WebServicesConfigurationSectionHandler" preserve="all"/>

       </assembly>

 

       <assembly fullname="System">

               <type fullname="System.Net.Configuration.WebRequestModuleHandler" preserve="all"/>

               <type fullname="System.Net.HttpRequestCreator" preserve="all"/>

               <type fullname="System.Net.FileWebRequestCreator" preserve="all"/>

       </assembly>

 </linker>

주의하지만 어떤 클래스가stripping 되어야 하고 어떤 클래스가 사용이 되어야 하는지를 판별하는 방법이 어려울 수 있기 때문에, Xcode 콘솔의 에러 메시지를 확인하고시뮬레이터에서 앱을 실행시켜서 그런 정보들을 확인하는 것이 필요할 수 있습니다.

최적화된 크기의 앱 배포를 위한 체크리스트

1. 에셋 줄이기텍스처에 PVRTC 압축 옵션을 활성화 하고 가능한 범위 내에서 해상도를 줄입니다또한압축되지 않은 사운드 에셋의 수를 줄입니다이 방법에 대한 추가 팁을 아래 링크에서 확인할 수 있습니다. (링크 - http://docs.unity3d.com/Documentation/Manual/ReducingFilesize.html)

2. iOS Stripping Level Use Micro mscorlib로 설정합니다.

3. 스크립트 호출 최적화Level Fast but no exceptions로 설정합니다.

(Script call optimization level)

4. System.dll System.Xml.dll 에 있는 기능들은 사용하지 않습니다

이 라이브러리들은 micro mscorlib에 호환되지 않는 것 들입니다.

5. 불필요한 code dependencies를 제거합니다.

6. API Compatibility Level .Net 2.0 subset으로 설정합니다.

하지만 .Net 2.0 subset은 다른 라이브러리들과의 호화성에 제한적인 부분이 있다는 점을 주의해야 합니다

7. Target platformarm6로 설정합니다. (OpenGL ES 1.1)

8. JS Arrays를 사용하지 않습니다.

9. 구조체를 포함해서 Value 타입과 조합해서 generic container를 사용 하는 것을 자제합니다.



반응형
Posted by blueasa
, |

원하는 프레임 속도를 설정하기 위해 Unity iOS 에 의해 생성되는 사용자의 XCode 프로젝트를 열고AppController.mm 파일을 선택합니다.

#define kFPS 30


...위의 라인이 현재의 프레임 속도를 결정합니다. 그러면 사용자는 원하는 값을 설정하기 위해 변화만 주면 됩니다. 예를 들어, define 을:-


#define kFPS 60


...위와 같이 바꾼 경우 어플리케이션이 30 FPS 대신에 60 FPS 로 랜더링 것입니다.


출처 : http://unitykoreawiki.com/index.php?n=KrMain.iphone-Optimizing-MainLoop

반응형
Posted by blueasa
, |