SVN - 2번째 시간 (거북이 svn 으로 접속) / 페이스북 연동 2번째 시간


애니메이션 리타겟팅. ( 다른 모델의 애니메이션을 지정할 수 있다 )
네이버 개발자 도구에서 SVN 주소 확인
서버와 연돌 할 폴더 생성 후 마우스 우클릭 -> 체크아웃 클릭 -> 확인한 주소 붙여넣기
네이버 SVN 최초 생성시 설정한 패스워드 입력(아이디는 기본 네이버 아이디)

서버와 연동된 화면

파일생성 후 서버에 업로드-> 우클릭 -> 애드 클릭

애드 후 SVN 커밋 클릭 하여 완벽히 업로드 


간단한 메모 적을 수 있음. -> OK 버튼 클릭하여 서버에 올림

커밋(업데이트) 한 횟수 확인 가능

 사이트에서 업로드 된 파일 확인 가능

다른 컴퓨터에서 다운 받을때. 폴더 생성 -> 커밋 ->정보 입력.


파일 삭제는 딜리트로

딜리트 후 커밋하여 서버와 동기화

주소확인

새폴더 생성 -> 마우스 우클릭 -> SVN CheckOut ( 최초 서버와 폴더 싱크 동기화)

주소 입력 -> 아이디 패스워드 입력 (네이버 아이디, 지정한 패스워드)

지정한 svn 폴더 안 trunk 에서 작업 

-> 작업 완료 후 갱신법:파일에서 마우스 우클릭 -> add 버튼 클릭 -> 마우스 우클릭 -> 커밋 클릭


snv 다운폴더 생성 -> SVN CheckOut -> ( 최초 서버와 폴더 싱크 동기화)
자동으로 폴더및 파일 생성됨 ->

갱신확인 -> 업데이트 ( 수정된것이 있는지 확인)

작업전 항상 업데이트 부터 실행한다.

지울때 -> 마우스 우클릭 -> 딜리트 --> 상위 폴더로 가서 커밋.





* 페이스북 연동!!!  ============================


적용된 권한 목록 확인하기
TOOLS & SUPPORT 메뉴 -> 겟 토큰 -> 
   권한 체크 
   개발자 페이지 스테이터스 에서 확인 가능




페이스북 sdk 유니티에 설치 -> http://freebox.myqnapcloud.com:8080/share.cgi?ssid=0J6ZFgr


설치한 SDK 페이스북 테스트씬 으로 테스트 확인

 SDK 메인페스트 파일 아이디 변경 후 세이브

adb 배치파일로 만들고 ( 환경변수 설정 )

adb logcat -s Unity  입력하여 안드로이드 디바이스와 유니티연결




페이스북 sdk 다운

페이스북 sdk 유니티에 설치 ->


작업프로세스 : 자바로 만든것을을 유니티로 가지고 와서 사용한다.

안드로이드로 작업 한 경우 pc에서 테스트가 안되고 안드로이드 디바이스에서 테스트 해야 한다.
광고를 붙이더라도 pc를 지원하지 않는 에셋일 경우 안드로이드 빌드 후 테스트 해야 한다.

Social Networking Android 셋팅 -> 

AndroidManifest 파일 : 내 어플에 대한 설정( 가로보기로 할것인지 결재를 가능하게 할건지 하는 설정등)

개발자 계정에 접속하기 위해 ->
AndroidManifest  오픈하여  페이스북 개발자 페이지 -> 내 앱 -> 대쉬보드 -> 아이디 복사 -> 
AndroidManifest  파일의 아이디란에 붙여 넣기 해준다.


--- 콘솔창에서 빌드된 페이스북 정보 읽어 들어옴. - 
adb 환경변수 등록 (cmd 에서 바로 실행이 안될경우 콘솔창을 껐다가 켜준다)

adb logcat -s Unity 입력

( 콘솔창에서 waiting for device 메세지 나올때 유니티에서 빌드앤 런 다시 실행)


페이스북 로그인 화면 만들기. =======================

UI 다운로드 http://freebox.myqnapcloud.com:8080/share.cgi?ssid=0a3sati

NGUI 설치 -> UI 이미지 아틀라스로 만들기 
( NGUI -> OPEN -> ATLAS MAKER -> 스프라이트 모두 선택 -> 크리에이트 아틀라스 )
















MENU -> NGUI -> UI ROOT(2D) 생성( NGUI의 CANVAS ) -> 해상도 설정 
인스펙터 -> 레이어 설정 -> NGUI 레이어 생성후 적용



NGUI 카메라 -> 컬링 마스크 -> NGUI 선택 (NGUI 만 표시 하도록 )







































스프라이트 생성 -> 스프라이트 선택 -> 배경 이미지 만든다. (snap 버튼 클릭하여 원래 사이즈로 설정)

스프라이트 생성 -> 버튼 스크립트 추가 -> 박스 콜라이더 추가 -> 인스펙터에서 collider auto~ 체크

*** 페이스북 연동작업.

www 클래스로 이미지 불러들어옴.

 - 코루틴으로 로딩바 제작.

파일질라 설치

선생님 서버 : 180.70.94.180 접속 비밀번호 : 1234

  ngui-> 패널 생성 -> 스프라이트 차일드 -> 
  배경 스프라이트 선택( 아틀라스 버튼 클릭 -> SHOW ALL 클릭) -> NGUI 기본 아틀라스 선택 -> 아틀라스
  타일 제작 ( TYPE -> Tiled ) 
 
  *서버에 있는 이미지 불러와서 NGUI 텍스쳐에 적용시키기.
  (www 클래스로 이미지 불러들어옴.)
  NGUI -> CREATE -> TEXTURE 텍스쳐 크기 설정( 서버에서 이미지를 받아와서 적용한다.)








=================[ 9월 10일 ]===================



  

  팝업 닫기 버튼 생성 -> 스프라이트 생성-> 라벨로 x 입력 -> 버튼 스크립트 연결 -> 박스콜라이더 연결
  박스 콜라이더 원클릭으로 설정.
  닫기 버튼 누르면 팝업 닫히도록 UI BUTTON Activate 스크립트 컴포넌트 add
  닫힐 타겟(팝업) 연결 -> State(보일것인지 안보일것인지 체크)


  * 페이스북 아이디 비밀번호 입력하기.
  빈 게임 오브젝트 -> titlePlay 생성 -> titlePlay 스크립트 생성하여 게임오브젝트 titlePlay에 적용
  
  
 
  1. 빈 게임오브젝트 생성 -> 쇼셜네트워킹 에셋 -> FacebookEventListener 연결
     FacebookEventListener : 통신(call) 받을 수 있도록 함....

  
  


  유니티 play실행하면 통신 받는 오브젝트 prime[31] 자동 생성
  

  2. 스프라이트 생성( 로딩 이미지 생성 ) -> titlePlay 연결 -> 회전 스크립트 작성.


  3. 로그인 처리
     - titleplay 스크립트에 네임스페이스 using Prime31; 작성
     - 코루틴 스크립트 작성 후 안드로이드 빌드 -> 로그인 테스트
    IEnumerator Login()
    {        
        //페이스북 로그인
        FacebookAndroid.login(); // 친구 정보없이 기본 정보만 받음
        yield return null;
    }   
    
    - 메뉴 -> 파일 -> 빌드 셋팅 -> 키스토어 찾아서 적용 -> 
      비밀번호 입력 -> 블루스택 실행 -> 빌드앤 런 
   

  4. 로그인 성공시 정보 출력
     -( 코드 로 작성)
     

           // 정보를 딕셔너리에 담음
           IDictionary root = (IDictionary)result;
           string name = (string)root["name"];
           string id = (string)root["id"];


  PlayerData 클래스 생성.
  PlayerData는 로그인한 유저의 기본정보를 담게되고 어떤 씬에 가던지 계속 남아 있게 된다.
        // 씬이 바뀌어도 현재(this) 클래스는 보존하도록 한다.
        DontDestroyOnLoad(this); ;
    



  5. 페이스북 로그인 로딩시 화면에 로딩바 띄우기...내일,,,,,
    



  페이스북 로그인 파이프라인 
  1. 로그인 정보 입력
  2. 로그인 성공 여부 판단 ( 서버와 통신중 )
  3. 로그인 성공시 정보 출력
  4. 유니티 화면으로 이동

소스링크 
http://freebox.myqnapcloud.com:8080/share.cgi?ssid=0da9ssv

====[PlayerData]=================

using UnityEngine;
using System.Collections;

public class PlayerData : MonoBehaviour {
 
 
    string nickName;
    long id;       

    void Start () 
    {
        // 씬이 바뀌어도 현재(this) 클래스는 보존하도록 한다.
        DontDestroyOnLoad(this); ;
    }
 
 
    public void ToLobby()
    {
        Application.LoadLevel("Lobby");
    }

}



====[TitlePlay]=================

using UnityEngine;
using System.Collections;
using System.Collections.Generic; // 딕셔너리 사용
using Prime31;
 
 
public class TitlePlay : MonoBehaviour
{
 
    // 로딩 스프라이트 연결
    public GameObject loading = null;
 
    //회전각 
    float loaginAngle = 0;
 
    void Start()
    {
 
        // 키, 오브젝트 담을 타입
        /*
        IDictionary<string, object> dic = new Dictionary<string, object>();
        dic.Add("kim", "seunghyon");
        dic.Add("2", 12345);
 
        string nam = (string)dic["kim"];
        int num = (int)dic["2"];
        */
 
        FacebookAndroid.init();
 
        StartCoroutine(Loading());
        StartCoroutine(Login());
        //해쉬키 인증 메세지 출력
 
    }
 
 
    void Update()
    {
 
    }
 
    //로딩 코루틴
    IEnumerator Loading()
    {
        while (true)
        {
            // 초당 회전각 500도
            loaginAngle += 500 * Time.deltaTime;
            // 로딩 게임 오브젝트 z 축 회전
            loading.transform.eulerAngles = new Vector3(0, 0, -loaginAngle);
            // 매프레임마다 갱신
            yield return new WaitForEndOfFrame();
        }
 
    }
 
 
    void MyHandler(string error, object result)
    {
 
 
        // 에러가 있다면
        if (error != null)
        {
            // 에러 메세지 출력
            Debug.Log(error);
        }
        else
        {
            // 정보를 딕셔너리에 담음
            IDictionary root = (IDictionary)result;
            string name = (string)root["name"];
            string id = (string)root["id"];
 
            long iID = long.Parse(id); //문자를 정수화 int = 31bit, 4bite / long = 64bit ,8bite
            //( long 는 int보다 두배 많은 수를 다룰때 사용한다 )
 
            print("name : " + name);
            print("id : " + id);
 
 
            // 정보 결과 받아옴
            print("result " + result.GetType());
            Prime31.Utils.logObject(result);
 
        }
 
    }
 
 
    //로그인 코루틴
    IEnumerator Login()
    {
        //페이스북 로그인
        FacebookAndroid.login(); // 친구 정보없이 기본 정보만 받음
        // FacebookAndroid.loginWithReadPermissions() // 친구 정보까지 받아옴
        //로그인이 완료 되었는지 확인 로그인이 안되어 있으면 대기.
        while (FacebookAndroid.isSessionValid() == false)
        {
            // FacebookAndroid.isSessionValid() = 로그인이 되었으면 true 리턴 로그인중이면 false 리턴
            yield return new WaitForSeconds(0.1f); //0.1초에 한번씩 로그인 결과 체크
        }
 
        // 로그인 정보 가져옴
        Facebook.instance.get("me", MyHandler);
 
 
        yield return null;
    }
 
 
 
}



  









===========[  Notice  ]==================
using UnityEngine;
using System.Collections;
 
// 서버로 부터 이미지를 다운 받는 클래스.
public class Notice : MonoBehaviour
{
 
    // NGUI 텍스쳐 오브젝트 연결
    public UITexture noticeImage = null;
 
    void Start()
    {
 
        StartCoroutine(Download());
    }
 
    IEnumerator Download()
    {
        string url = "http://180.70.94.180/unityweb/guest000/freebox/notice.png";
 
        WWW www = new WWW(url);
 
        yield return www; // 이미지를 모두 다운을 받을때 까지 대기를 걸어준다.
 
 
        /*
        if (www.isDone == true) // www 완료 되면
        {
 
        }
        */
        if (www.error == null)// 에러 메세지가 없다면
        {
            Texture2D tex = www.texture; // Texture형 변수 tex에 웹에서 받아온 이미지를 넣어준다.
            // 
            noticeImage.mainTexture = tex; // 선언해준 UITexture 형 변수에 인터넷에서 받아온 이미지 대입
 
        }
        else// 에러 메세지가 있다면
        {
            Debug.LogError(www.error);
        }
 
    }
 
 
}
  

=== 여기까지 작업 소스 https://freebox.myqnapcloud.com/share.cgi?ssid=0p1S4MY






댓글

이 블로그의 인기 게시물

날짜 시간 시간차 시간 계산 하기

코루틴에서 CallBack 함수 적용하기

C++ 언어 퍼센트 구하는 방법 / 기본 언어 퍼센트 구하는 방법