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

카테고리

분류 전체보기 (2794)
Unity3D (852)
Programming (478)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (11)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
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

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


링크 : http://www.mobiinside.com/kr/index.php/2016/01/07/japan_mobilgame_psy/

반응형
Posted by blueasa
, |

[아이폰 iOS 기본 앱 활용하기] 2부 패스북(월렛) 사용법과 멤버십 패스 발급 및 저장





모바일 멤버십을 사용하러면, 한참을 기다려야 해서 안쓰는가?



iOS6부터 탑재되어있던 패스북은 여러모로 좋은 앱입니다. 먼저 네이트브 어플리케이션으로 앱 구동속도가 매우 빠르며, 가볍습니다.시럽같은 타사 멤버십 어플은 구동속도가 대부분 10-15초 입니다. 패스북의 경우 2초면 가능합니다. 그리고 선택도 간편합니다. 하지만 그 사용방법이 널리 알려져있지 않아 자주 쓰지 않게 되었죠. 저도 일전에는 '모바일 시럽(구 스마트월렛)' 을 사용했습니다. 핸드폰번호만 입력하면 발급부터 저장까지 자동으로 되어서 좋았습니다. 하지만 이것이 사용하려면 너무나 오랫동안 로딩해야됬기 때문에, 불편한게 이만저만이 아니였습니다. 한번은 뜨기를 기다리는데, 뒤에 줄이 어마어마해서 난감했던 경우도 있었구요. 결국엔 민망한 나머지 혜택 안받고 그냥 계산만 햇지요. 그래서 거의 실물카드를 사용하곤 했습니다. 그러다 패스북으로 멤버십을 받을 수 있다는 것을 알았습니다. 그것이 아이폰을 쓰고 반년만에 알았지요. 패스북 어플은 항상 쓰레기폴더에 숨겨져있었습니다. 패스북 사용방법을 안뒤로, 저의 멤버십 혜택 라이프는 극대화 되었습니다. 아이폰 하나면, 모든 멤버십 카드를 저장할 수 있어서 였습니다. 물론 지갑도 가벼워(?)저는건 덤입니다. 만약 독자여러분의 패스북이 폴더에 감추어져 있다면, 지금 당장 앱을 메인화면으로 꺼내놓으세요! 지금 알려드리겠습니다!



패스북? 월렛? 뭐가 맞나?





본래 iOS8까지 패스북이라는 앱으로 사용되었습니다. 그러나 ApplePay의 등장으로 iOS9부터 앱이름은 Wallet 월렛으로 변경되었죠. 앱아이콘과 이름만 바뀌었을 뿐, 그 기능은 똑같습니다. 다만 앱의 본질이 패스북이 였다면, 이제 패스가 아닌 실물 결제가 가능하다는 것이죠. 애플페이를 대대적으로 사용성을 넓히려는 애플의 숨은 의도를 볼 수 있습니다. 일단 두개 다 동일한 앱이니 착오 없으시길 바라며, 아래의 순서대로 진행 하시면 됩니다.





* 준비물


앱스토어에서 시럽을 설치하고 회원가입하세요. 그리고 카드를 발급받으세요. 하지만 시럽을 사용하지는 않을 것입니다. 모바일 카드정보를 수집하는것은 시럽이 으뜸입니다. 패스북을 카드정보를 직접 입력해야하기 때문에 모든 작업을 다 하시면, 시럽은 간단하게 삭제해주시면 됩니다.

 시럽(syrup) 설치는 여기를 탭하시거나, 앱스토어에서 "시럽" 혹은 "스마트월렛"을 검색해주세요. 또한 멤버십 실물카드를 준비해주세요.



1. 아이폰의 사파리로 민트코드 패스사이트를 접속합니다

http://pass.mintcode.org


(아이폰으로 할시에, 반드시 사파리를 이용해야 되며, PC에서는 '패스정보 이메일로받기'를 진행하셔야 합니다)

* 패스정보 이메일로받기는 아래 참고.



[민트코드 패스사이트, 거의 모든 멤버십이 다 있다.]





2. 그리고 원하는 멤버십을 선택하세요.









3. 패스정보를 입력하시고, 만들기를 클릭하시면 됩니다.아이폰에서는 자동으로 패스북이 실행되며 '추가'버튼만 눌러주시면 됩니다.  PC의 경우 반드시 메일로 받기 옵션을 선택해서, 메일로 발급받으신 후 아이폰에 해당 메일에 접속해 메일의 첨부파일을 열어주시면 됩니다.



  • 로고 이름은 옵션입니다. 입력하시면 패스 오른쪽 상단에 표시가 됩니다. 미관상 없는것이 더 좋을 수 있습니다.

  • 카드번호는 최대한 모바일카드로 번호로 입력하시는게 좋습니다. 물론, 실물 카드번호도 인식하지만 가끔 어떤 번호는 인식이 되지 않을 수 도     있습니다. 시럽을 설치하셨으면, 시럽에 있는 카드번호를 입력하시면 되고, 시럽에 없는 멤버십은 실물카드번호를 입력해주셔도 무방합니다. 참고로 해피포인트 패스북은 적립만 가능합니다. '해피포인트'앱을 설치하시고, 앱안의 모바일멤버십 카드번호를 입력하시면 패스북에서도 포인트 적립 및 사용 모두 가능합니다.

  • 바코드 종류는 Code 128로 하시면 됩니다.

  • QR 코드는 있어도 되고, 없어도 됩니다. 전 일단 사용하기 했습니다.

  • 패스정보 메일로 받기는 패스북을 백업할 수 있는 기능입니다. 패스북(월렛)은 기본적으로 아이클라우드로 자동백업이 되있습니다. 하지만 iCloud를 사용안하거나, 갑작스럽게 패스 멤버쉽이 없어지게 생겼다면, 메일로 백업받은것으로 손쉽게 다시 받을 수 있습니다. 카드정보 직접 입력하는 일이 매우 번거로운 일이기 때문에 만일에 사태에 대비해 메일로 백업을 해두시길 권장합니다.



저는 LG멤버쉽,T멤버쉽,올레멤버쉽,해피포인트,CJONE,L포인트,홈플러스,아이튠즈,반디앤루니스멤버십 등 


거의 모든 멤버십이 패스북에 담아져 있습니다.


여러분들도, 이제 무거운 시럽 사용하지 마시고, 패스북을 발급받아 사용해보시길 권장해드립니다!




출처 : http://emusk.tistory.com/15

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

[펌] 논쟁할 때는..

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