모든 문서(일반 문서, 분류 문서, 파일(이미지, 사운드 등) 문서)는 분류가 달려 있어야 합니다.
--Administrator (토론)
Active User 모듈 적용 가이드 (Unity3d)
컴투스위키
Com2uS 공통모듈 | >> | Active User | >> | Active User 모듈 적용 가이드 (iOS)
Active User 모듈 적용 가이드 (Android) Active User 모듈 적용 가이드 (Unity3d) |
>> | Active User 모듈 레퍼런스 가이드 | >> | Active User 샘플 가이드 | >> | Active User FAQ |
목차 |
프로젝트 설정
iOS
유의사항
- Unity 4.3.4 에서 iOS View 관리 방식이 바뀌어 초기 시작 시 약관노출이 안될 수 있습니다.
- 게임 시작과 동시에 Active User를 호출하면 Active User View가 SplashView(UnityLogo 화면) 에 SubView로 추가됩니다.
- 이 경우 Logo가 사라지면서 Active User View도 같이 사라지게 됩니다. 따라서, Active User 설정 시점을 SplashImage(Logo)가 사라진 후에 설정해야 정상적으로 약관 노출이 가능합니다.
- 게임에서 지원하는 회전방향을 설정해주세요.
- Xcode -> View Controller에서 아래 코드를 제거해 주세요 (디바이스 회전 관련 코드)
// - (BOOL)shouldAutorotate // { // return YES; // } // // - (NSUInteger)supportedInterfaceOrientations // { // return UIInterfaceOrientationMaskLandscape; // }
프로젝트 설정
- Xcode 프로젝트에서 Active User 모듈 적용 가이드 (iOS)를 따라, 리소스 추가 및 프로젝트 빌드 설정을 수행합니다.
Unity 플러그인 추가
- C2SCommonPlugin.unitypackage를 실행하여, CommonPlugin을 추가합니다. (svn://devbackup.com2us.com/Wrapper_redist/program/module/unity/UnityCommonPlugin/)
- Active User Plugin을 추가합니다. (svn://devbackup.com2us.com/Wrapper_redist/program/module/unity/ActiveUser/Plugin/)
- C2SActiveUserPlugin.cs
헤더, 함수 추가
- Xcode 프로젝트에서 UnityView.mm 또는 iPhone_View.mm 파일에 Active User 헤더와 아래 함수를 추가합니다.
- 해당 함수는 Active User가 보여지는 뷰를 설정해줍니다.
- 함수를 추가하지 않으면 빌드 오류가 발생합니다.
#include "C2SActiveUser.h"
extern "C" {
void CS_SetModuleView()
{
CS_UserAgreeSetView((void*)UnityGetGLView());
}
};
extern "C" {
void CS_SetModuleView()
{
CS_UserAgreeSetView((void*)UnityGetGLView());
}
};
Android
<작성법 참고>
Android Project 적용 가이드
- Unity Project에 Asset/ Plugins/ Android/ libs 구조로 폴더를 생성하여 아래의 Jar파일들을 추가 합니다.
- Active User Plugin : C2SActiveUserPlugin.cs 을 추가합니다.
<작성법 참고>
Jar 파일 추가 (Java Libraries)
- Add JARS...
AndroidManifest.xml
Resource 추가
Active User 모듈 적용 가이드 (Android)#Resource 추가
Android Mercury 2.12.6 이후 버전 적용부턴 수동으로 리소스를 추가하지 않아도 됩니다.
Android Mercury 의 .aar 파일에 리소스가 포함되어 있습니다.
Unity에서 Active User 초기화
- 아래 소스코드는 예시입니다.
- ActiveUserScript가 Main Camera의 Component 스크립트 인 경우, Callback 함수의 객체를 Main Camera로 설정합니다.
public class ActiveUserScript : MonoBehaviour {
private C2SActiveUserPlugin activeUser = null;
void Start () {
activeUser = new C2SActiveUserPlugin(); // 객체 생성
activeUser.setUserAgreeCallback("Main Camera", "UserAgreeCallback"); // UserAgreeCallback 등록
activeUser.setActiveUserCallback("Main Camera", "ActiveUserCallback"); // ActiveUserCallback 등록
activeUser.setEnableUserAgreeUI(C2SActiveUserPlugin.USER_AGREE_COLOR_TYPE_WHITE);
activeUser.start();
}
}
private C2SActiveUserPlugin activeUser = null;
void Start () {
activeUser = new C2SActiveUserPlugin(); // 객체 생성
activeUser.setUserAgreeCallback("Main Camera", "UserAgreeCallback"); // UserAgreeCallback 등록
activeUser.setActiveUserCallback("Main Camera", "ActiveUserCallback"); // ActiveUserCallback 등록
activeUser.setEnableUserAgreeUI(C2SActiveUserPlugin.USER_AGREE_COLOR_TYPE_WHITE);
activeUser.start();
}
}
1. C2SActiveUserPlugin.cs 의 C2SActiveUserPlugin 객체를 생성합니다.
2. UserAgreeCallback 콜백 함수를 등록합니다. (Active User 모듈 레퍼런스 가이드#typedef void (* UserAgreeCB)(USER_AGREE_RESULT result))
3. ActiveUserCallback 콜백 함수를 등록합니다. (Active User 모듈 레퍼런스 가이드#typedef void (* ActiveUserCB)(ACTIVE_USER_RESULT result))
4. start()모듈 시작
- start() 호출 시점을 늦춰야 한다면, void Start()를 IEnumerator Start ()로 변경합니다.
IEnumerator Start () {
activeUser = new C2SActiveUserPlugin(); // 객체 생성
activeUser.setUserAgreeCallback("Main Camera", "UserAgreeCallback"); // UserAgreeCallback 등록
activeUser.setActiveUserCallback("Main Camera", "ActiveUserCallback"); // ActiveUserCallback 등록
activeUser.setEnableUserAgreeUI(C2SActiveUserPlugin.USER_AGREE_COLOR_TYPE_WHITE);
yield return new WaitForSeconds(0.05f); // 0.05초 지연
activeUser.start();
}
activeUser = new C2SActiveUserPlugin(); // 객체 생성
activeUser.setUserAgreeCallback("Main Camera", "UserAgreeCallback"); // UserAgreeCallback 등록
activeUser.setActiveUserCallback("Main Camera", "ActiveUserCallback"); // ActiveUserCallback 등록
activeUser.setEnableUserAgreeUI(C2SActiveUserPlugin.USER_AGREE_COLOR_TYPE_WHITE);
yield return new WaitForSeconds(0.05f); // 0.05초 지연
activeUser.start();
}
- WaitForSeconds 함수를 추가하여, 원하는 시간만큼 초기화를 지연 시킵니다.
이용약관
public class ActiveUserScript : MonoBehaviour {
public void ShowUserAgree()
{
activeUser.showUserAgreeTerms();
}
}
public void ShowUserAgree()
{
activeUser.showUserAgreeTerms();
}
}
- 위와 같이 함수를 만들고, ActiveUserScript의 ShowUserAgree를 호출하면 사용자 동의창이 호출됩니다.
Com2uS 공통모듈 | >> | Active User | >> | Active User 모듈 적용 가이드 (iOS)
Active User 모듈 적용 가이드 (Android) Active User 모듈 적용 가이드 (Unity3d) |
>> | Active User 모듈 레퍼런스 가이드 | >> | Active User 샘플 가이드 | >> | Active User FAQ |