2015-01-08 4 views
4

유니티 (v6.0) 용 페이스 북 SDK를 사용하고 있으며, 페이스 북 앱이 장치에 설치되어 있는지 확인할 수있는 방법이 있는지 여부를 확인하고 싶습니다. 합니다 (FB 응용 프로그램이 설치되어있는 경우에만 발생)Unity에서 페이스 북 앱이 설치되었는지 확인하기

내가이 시나리오를 식별하려면, 그에 따라 반응 :

이유는 페이스 북 SDK에서 기존 버그 (bug 여기 참조). 당신이 먼저 당신이 필요로하고 도서관으로 그들을 컴파일 기능을 무엇에 액세스 할 수있는 C 기반의 언어 기능을 를 작성할 필요가 기본 플러그인을 사용하기 위해

+1

여기에 네이티브 코드를 사용해야하므로 확실하지 않은 경우 'iOS()'와 같은 일반적인 질문을 시도해 볼 수 있습니다. , 다른 응용 프로그램이 설치되어 있는지 감지합니까? " 또는 "iOS, 페이스 북이 설치되어 있는지 감지 하시겠습니까?"라고 물어보십시오. 그런 다음 어떻게 해야할지 모르는 경우 유니티의 네이티브 플러그인을 작성하는 방법을 연구하십시오. – eselk

+0

이 정보가 도움이됩니까? http://forum.unity3d.com/threads/check-if-other-app-is-installed-on-device.272548/ Graham의 답을 확인하십시오. 나는 iOS를 사용하지 않는다. 그래서 이것이 정말로 quetion에 대답하는지 모르겠다. –

+0

네이티브 플러그인을 사용하여 확인할 수 있지만 플랫폼에 따라 다릅니다. 나는 안드로이드로 당신을 도울 수 있지만, 어떻게 iOS 용으로 그것을 구현할 수 있을지는 모른다. –

답변

1

. "유니티, 당신은 또한 만들어야합니다 네이티브 라이브러리에서 함수를 호출하는 C# 스크립트. " 그래서

http://docs.unity3d.com/Manual/NativePlugins.html에서, 기본적으로는 오브젝티브 C로 코드를 작성하고 단결과 네이티브 코드 사이의 통신을 제공해야합니다.

Facebook APP 확인을 위해 구현해야하는 코드는 다음과 같습니다.

(void) checkFacebookApp 
{ 
    if ([[UIApplication sharedApplication] canOpenURL:[NSURLURLWithString:@"fb://"]]) 
    { 
     return true; 
    } 
} 

그러나 Unity와 Xcode 프로젝트 간에는 약간의 통신이 필요합니다. 그래서;

class SomeScript : MonoBehaviour { 

    #if UNITY_IPHONE || UNITY_XBOX360 

    // On iOS and Xbox 360 plugins are statically linked into 
    // the executable, so we have to use __Internal as the 
    // library name. 
    [DllImport ("__Internal")] 

    #else 

    // Other platforms load plugins dynamically, so pass the name 
    // of the plugin's dynamic library. 
    [DllImport ("PluginName")] 

    #endif 

    private static extern float checkFacebookApp(); 

    void Awake() { 
     // Calls the FooPluginFunction inside the plugin 
     // And prints 5 to the console 
     bool check = checkFacebookApp(); 
    } 
}