1. 페이스북 개발자 페이지에 접속한다.


2. 로그인을 하면, 새 앱 추가 버튼이 보이는데 새 앱 추가를 클릭한다. 그러면 다음과 같은 창이 뜬다.


3. 앱 이름을 작성하고, 완료를 누른다. ( 페이스북과 관련된 특정 단어는 사용할 수 없다. Facebook  FB Face 등등)


4. 보안관련 문자를 한 번 기입하면 새 앱이 만들어진다.


5. 왼쪽에 대시보드(Dashboard)를 선택하면 앱 ID를 확인할 수 있다.

 



이제 유니티에서 앱 ID를 적용시켜보자.


Posted by sungho88
,

일단 유니티에서 페이스북 어플을 연동하기 위해 유니티에서 사용할 수 있는 페이스북 SDK 를 제공한다.


그러므로 들어가서 받도록 


Facebook SDK for Unity


주의할 점! 가장 최신것을 받는다고 좋은게 아니다.


가장 최신 버전(7.10.0)을 받았더니 에러가 발생한다. 


심지어 에러가 발생한지 얼마 되지 않은 최신 에러인지 구글에도 찾을 수 없었다.


찾다가찾다가 포기...경험상 최신것들은 문제가 많다는것을 생각해 작년에 나온 한 단계 아래버전으로 다시 도전


헐 된다.



MissingMethodException: Method not found: 'UnityEditor.PlayerSettings.get_applicationIdentifier'.
Rethrow as TypeInitializationException: An exception was thrown by the type initializer for GooglePlayServices.PlayServicesResolver


이런 에러가 발생한다. 해결 방안을 찾기도 어렵다.

그냥 편하게 한 단계 아래 버전을 다운받아서 임포트하도록 하자.


7.9.4 버전을 다시 다운로드 받아서 압출 해제를 한 뒤, 임포트하면?


된다!


이상으로 SDK 설치를 마친다.

이제 예제를 해보자.




Posted by sungho88
,

일단, 가장 단순하게 버튼 하나를 생성하고 그 버튼을 눌렀을 때 다른 씬으로 넘어가도록 하려고 한다.

한 가지 기능씩 구현해나가며 익숙해지려고 한다.


1. 버튼을 만들어야 한다.


GameObject - UI - Button으로 생성한다.

이상한 위치에 가있으므로 버튼의 위치를 0 0 0 으로 초기화(Reset)시킨다.


2. 다음으로 C# 스크립트를 하나 생성한다.


프로젝트 뷰 - Create - C# Script를 클릭하여 파일을 생성한 후 이름을 원하는 이름으로 변경해준다.


※내가 겪은 주의 할 점 두 가지


1) 생성 직후 이름을 변경하는 것은 문제가 없으나, 추후에 변경할 경우 스크립트에 있는 클래스명은 변하지 않으므로 스크립트를 열어 클래스명도 동시에 수정해줘야한다.


2) 씬을 변환해주는 이미 내장된 클래스명이 SceneManager이므로 이 클래스명은 사용하지 말아야한다. SceneManager가 명확한 파일명이 될 수 있지만, 이렇게 이름을 지을 경우 SceneManager의 본래의 내장된 기능을 사용할 수 없게된다.


어쨋든, 스크립트를 생성하면 열은 뒤, 씬을 변경하는데는 Start()함수와 Update()함수는 필요하지 않다.

씬을 변경하는 작업만 할 것이므로 삭제한다.

그 다음에 임의로 메소드 하나를 생성한다. 나는 ButtonClick이라는 이름으로 만들었다.


그 메소드에는 SceneManager.LoadScene("Play");만 써주면 된다.

아 그 전에 SceneManager를 사용하기 위해서는  맨 위에


using UnityEngine.SceneManagement;


을 한줄 추가해주어야 한다. SceneManagement를 사용하겠다는 정의이다.

LoadScene()함수는 이름에서도 알 수 있듯이 씬을 로드해오는 기능을 갖은 함수이다.

매개변수로 string으로 불러오고자 하는 씬명(Scene Name)을 작성해주면 끝~~


전체 코드는 다음과 같다.


using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.SceneManagement;


public class SceneChanger : MonoBehaviour

{

    public void ButtonClick()

    {

        SceneManager.LoadScene("Play");

    }

}

 


예전 방식으로 씬을 불러오기 위해서는 

Application.LoadLevel("Play"); 를 사용했다.

더이상 사용하지 않도록 하자.  물론 지금 사용해도 에러.오류는 나지 않지만, 경고가 뜬다. 


application.loadlevel is obsolete. Use SceneManager.LoadScene.


그러므로, SceneManager.LoadScene("")을 사용하는 것을 권장한다.


Posted by sungho88
,