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

카테고리

분류 전체보기 (2077)
Unity3D (462)
Programming (453)
Unreal (2)
Gamebryo (56)
Tip & Tech (157)
협업 (23)
3DS Max (3)
Game (12)
Utility (97)
Etc (86)
Link (29)
Portfolio (18)
Subject (90)
iPhone (30)
Android (2)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (1)
Memories (16)
Interest (36)
Thinking (29)
한글 (23)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (14)
Exercise (3)
나만의 맛집 (2)
냥이 (7)
육아 (2)
Total1,058,849
Today6
Yesterday214
Statistics Graph

달력

« » 2017.06
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

공지사항

태그목록

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

AndroidManifest에 다음 줄을 추가하면

시작하자마자 뜨는 퍼미션 요청을 스킵할 수 있습니다.


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



출처: http://minhyeokism.tistory.com/54 [programmer-dominic.kim]

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by blueasa

댓글을 달아 주세요

유니티 엔진 사용 시 입력을 하지 않으면 모바일 장치의 화면이 어두워지다가 잠기게 되는데, 그러면 플레이어는 잠김을 다시 풀어야 해서 불편합니다. 따라서 화면 잠금 방지 기능 추가는 필수적이고, Screen.sleepTimeout를 아래처럼 설정하면 그걸 할 수 있습니다.

1
Screen.sleepTimeout = SleepTimeout.NeverSleep;

참고:


[출처] https://sunhyeon.wordpress.com/2014/03/26/1400/

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by blueasa

댓글을 달아 주세요


[링크] http://m.blog.daum.net/zevie/21

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by blueasa

댓글을 달아 주세요



[링크] http://ijemin.com/blog/5385

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by blueasa

댓글을 달아 주세요

[링크] ETC1 + Alpha

Unity3D/Tips / 2017.04.06 17:36


[링크] http://twocap.tistory.com/11



[참조] https://www.assetstore.unity3d.com/kr/#!/content/23722

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by blueasa

댓글을 달아 주세요

MAC OS
 ㄴ 어플리케이션 : ~/Library/Preferences
 ㄴ 웹플레이어 : ~/Library/Preferences/Unity/WebPlayerPrefs

unity.[company name].[product name].plist 파일


Windows OS
 ㄴ 어플리케이션 : 레지스트리 HKCU\Software\
 ㄴ 웹플레이어 : %APPDATA%\Unity\WebPlayerPrefs

\[company name]\[product name] 폴더


시작 단추, 실행을 차례로 누르고 REGEDIT를 입력




[출처] http://ancardwineugene.blogspot.kr/2015/07/unity3d-playerprefs.html

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by blueasa

댓글을 달아 주세요

[키워드] MovieTexture, Handheld.PlayFullScreenMovie(path)


[링크] http://blog.naver.com/crazylulu/120173323897

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by blueasa

댓글을 달아 주세요

3번째? 4번째 등록인 것 같다. 할 때마다 복잡하고 어렵다.

APK를 배포하는 PC에 이 작업이 되어 있어야 한다.


1. 개발자 페이스북에 앱 추가하기

https://developers.facebook.com/apps/ URL에 접속해서 새 앱을 추가한다.

이 부분은 내가 안해서 모른다.


무튼 앱 추가하면 아래 이미지처럼 목록에 보여진다.





2. 자바 설치

개발자니까 당연히 설치 되어있겠지.


3. openssl 설치

https://code.google.com/archive/p/openssl-for-windows/downloads URL에 접속해서 윈도우에 맞게 다운로드한다.

최신 버전을 설치해야한다고 하던데 2009년 버전밖에 없다. 그래도 잘 동작하던데?

다운받은거 압축풀고 폴더 그대로 C드라이브 아래에 넣는다.

얘는 따로 인스톨 과정이 없다.


4. Hash Key 생성

ctrl + r 을 눌러 cmd를 입력하고 창을 띄운다.

명령어를 실행할 위치로 이동한다. 그 위치는 바로 자바의 bin 폴더이다.



이 경로에서 아래 명령을 실행하고 "키 저장소 비밀번호"인 android를 입력하면 Hash Key가 생성된다.


keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64


4-1. ~/.android/debug.keystore

위 debug.keystore라는 파일은 뭘 하는 놈인지 모르겠다만, 기본으로 존재하는 파일인 것 같다.

윈도우에서 보통 C:\Users\사용자\.android 경로에 있다.



4-2. openssl

openssl의 경로를 넣어주면 된다.

주의할 점은 bin 폴더의 openssl까지 입력을 해야 한다. 이 부분때문에 항상 고난을 겪는다.




명령을 실행하면 키 저장소 비밀번호 입력하라고 뜬다. android를 입력하면 해시키를 리턴해준다.



5. 개발자 페이스북 > 앱 > Settings > Key Hashes에 입력

리턴받은 해시키를 오타없이 위 경로에 입력하고 저장하면 된다.




출처: http://stickyny.tistory.com/62 [Mindware 깍두기]

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by blueasa

댓글을 달아 주세요

yield return 0은 UnBoxing이 일어나니 yield return null; 사용.



[참조]

Using "yield return 0;" allocates unwanted memory, due to unboxing the 0 to null. so you should use "yield return null;" to lessen GC stress.


[참조링크] https://disqus.com/home/discussion/unitypatterns/scripting_with_coroutines/

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by blueasa

댓글을 달아 주세요

iOS 키체인을 활용해 문자열을 앱의 삭제 이후에도 보존하는 방법이다. 스크립트 하나를 아래와 같이 작성.

using UnityEngine;
using System.Runtime.InteropServices;
 
public class KeyChain {
   
  #if UNITY_IPHONE || UNITY_STANDALONE_OSX
   
  [DllImport("__Internal")]
  private static extern string getKeyChainUser();
   
  public static string BindGetKeyChainUser()
  {
    return getKeyChainUser();
  }
   
  [DllImport("__Internal")]
  private static extern void setKeyChainUser(string userId);
   
  public static void BindSetKeyChainUser(string userId)
  {
    setKeyChainUser(userId);
  }
   
  [DllImport("__Internal")]
  private static extern void deleteKeyChainUser();
   
  public static void BindDeleteKeyChainUser()
  {
    deleteKeyChainUser();
  }
 
 
  #endif
 
}
한 스크립트의 함수를 받을 Objective-C 파일을 만들 차례.

당연하게 새롭게 만들거나 다운로드한 파일의 위치는 유니티 프로젝트 Plugins/IOS에 위치. (위에 만든 스크립트 위치는 상관없음)


[링크] <- 링크를 통해 아래의 2개 파일을 다운로드.

- UICKeyChainStore.h

- UICKeyChainStore.m



아래의 2개의 파일을 새롭게 생성.

- KeyChainPlugin.h

- KeyChainPlugin.mm


KeyChainPlugin.h의 내용은 아무것도 구현하지 않고 빈 파일로 둠.


KeyChainPlugin.mm의 내용은 아래와 같이 작성.

#import "KeyChainPlugin.h"
#import "UICKeyChainStore.h"
 
NSString *_keyForID = @"UserID";
 
@implementation KeyChainPlugin
 
extern "C" {
    char* getKeyChainUser();
    void setKeyChainUser(const char* userId);
    void deleteKeyChainUser();	
}


char* getKeyChainUser()
{
    NSString *userId = [UICKeyChainStore stringForKey:_keyForID];
 
    if (userId == nil || [userId isEqualToString:@""]) {
        NSLog(@"No user information");
		userId = @"";
    }
 
	NSString* json = [NSString stringWithFormat:@"{\"userId\":\"%@\"}",userId];
 
    return makeStringCopy([json UTF8String]);
}
 
void setKeyChainUser(const char* userId)
{
    NSString *nsUseId = [NSString stringWithCString: userId encoding:NSUTF8StringEncoding];
 
    [UICKeyChainStore setString:nsUseId forKey:_keyForID];
}
 
void deleteKeyChainUser()
{
    [UICKeyChainStore removeItemForKey:_keyForID];
}
 
char* makeStringCopy(const char* str)
{
    if (str == NULL) {
        return NULL;
    }
 
    char* res = (char*)malloc(strlen(str) + 1);
    strcpy(res, str);
    return res;
}
 
@end

전체적인 흐름은 다음과 같음.


1. Keychain.getKeyChainUser() 호출.

2. KeychainPlugin.getKeyChainUser() 진입후, UICKeyChainStore.stringForKey함수를 사용하여 키체인에 접근, UserID의 키에 해당하는 값을 가져옴.

3. 함수를 보면 알겠지만, 값이 null이거나 빈값일 경우 json으로 리턴할 데이터에 값을 따로 지정하지 않음.

4. {"UserID":"ABC"} 형태로 리턴되므로, 유니티에서 해당 값을 반은 후 JSON 데이터를 파싱해서 사용.


* 유니티 API의 SystemInfo.deviceUniqueIdentifier은 호출시 고유한 값을 리턴하지만,  앱을 삭제하고 다시 설치후 호출할 경우 변경된 값을 리턴하므로, 위와 같은 방법을 통해 영구적인 형태로 사용할 수 있음.



참고링크

- http://bribser.co.jp/blog/pluginkeychain/

- http://docs.unity3d.com/kr/current/Manual/PluginsForIOS.html

- https://github.com/kishikawakatsumi/UICKeyChainStore



출처: http://redccoma.tistory.com/134 [My Data Factory]


저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by blueasa

댓글을 달아 주세요

티스토리 툴바