전체 글 (100)

10
28

Playgames에 로그인 실패를 한다.

 

   public void TryGoogleLogin()
    {
        if (!Social.localUser.authenticated) // 로그인 되어 있지 않다면
        {
            Social.localUser.Authenticate(success => // 로그인 시도
            {
                if (success) // 성공하면
                {
                    Debug.Log("Success");
                    text_Alert.text = "로그인 시도";
                    StartCoroutine(TryFirebaseLogin()); // Firebase Login 시도
                }
                else // 실패하면
                {
                    Debug.Log("Fail");
                    text_Alert.text = "로그인 실패";
                }
            });
        }
    }

 

공식 홈피에서 하라는 대로 했건만..

 

1. User.keystore

경로를 확인하고 cmd에다가 아래 예시처럼 입력한다.

ex) keytool -list -keystore C:\Users\CHOIJIWON\Desktop\user.keystore

 

그럼 이렇게 나옴

필요한 곳 어디든 넣어서 쓰면 된다.

 

https://github.com/playgameservices/play-games-plugin-for-unity/issues/1800

로그인 문제 해결방법 찾다가

이분 말을 요약하자면

구글 플레이에 등록하면

SHA-1 자체 인증서가 발급돼서

그걸로 등록을 해야 함

근데 우리는 지금 apk로 테스트 중이니까

자체 SHA-1을 써야 하는 것 같음...

 

최근에 개발자 콘솔이 바뀌어서 인지 위치가

어딨는지 헤맸는데 설정-앱 무결성에 있다.

아마 업로드 키 인증서를 이용해서 만들면 될 것 같다..

 

http://devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=83835

 

플레이게임 Android Configuration 에서

구글 클라우드 플렛폼에서 웹클라이언트 클라이언트 id를 써야한다.

(웹 클라이언트 ID를 가져가는 이유 : Token을 가져다 주는 건 웹 상에서 이루어지기 때문이라고 한다)

 

 

++

 

따흐흑 로그인 성공했다.

 

아래 참고한 블로그에서 많은 도움을 얻었지만

 

안되었던 이유를 정리하자면,,

 

사용자 인증 정보를 3가지를 얻어서 기입해야한다.

 

첫번째로는 테스트용,

apk로 테스트할때 쓰는 아이디

 

두번쨰는 출시할때 쓸 아이디 (프로덕션용 서명키를 따로 생성되기 때문)

 

세번째로는 파이어베이스, 또는 인증할때 웹상에서 이루워지게되서 쓸 웹 아이디

 

이걸 다 구글플레이 콘솔에 등록을 해야한다.

 

참고 https://inyongs.tistory.com/35

 

COMMENT
 
10
28

 

옷을 캐릭터와 합치지 않고 개별적으로 리깅하고 있었다.

 

게임에 들어갈 캐릭터라 옷 커스터마이징 기능 구현을 할 예정이기 때문이다.

 

계속 피부가 옷을 뚫는 건지 옷이 들어가는 건지 계속 찢어진다.

 

이게 머리카락이나, 눈처럼 머리뼈 하나에만 상속되면

 

그냥 뼈에 리깅시키면 되지만 옷 같은 경우는 아니다.

 

팔 다리 손 등 여러 곳에서 가중치 영향을 받는다.

 

몸과 같은 버텍스 그룹으로 복사해서 넣어주면 정말 편하다.

 

 

(이미 옷은 리깅한 관계로 예시는 머리카락으로 하겠다)

 

옷, 캐릭터 선택해서 Ctrl + P 로 Empty Groups속성으로 상속해준다.

DataTransfer에 버텍스 그룹 받아올 소스와 버텍스 데이터 받겠다고 체크해 주고 적용한다. 

그리고 모디파이어툴창에서 Armature위에 DataTransfer를 추가해주고 사진과 같이 해준다. 그러면 끝이다.

 

진짜 빠르게 클릭하면 1분 만에 옷 리깅이 끝난다.

 

이걸 몰랐던 나는 인생의 절반을 손해 본 것 같다.

 

 

 

 

COMMENT
 
10
28

 

1. 이동 행렬 (Translation Matrix)

(x,y,z) 위치를 (tx, ty, yz)만큼 이동

 

_41, _42, _43의 행렬 요소를 곱한다.

x+tx, y+ty, z+tz

 

다이렉트X에서 제공하는 함수는 다음과 같다.

D3DXMATRIX matMatrix; D3DXMatrixTranslation(&matMatrix, 1.0f, 1.0f, 1.0f);

 

 

2. 신축 행렬 (Scale Matrix)

(x,y,z)를 x,y,z축으로 Sx, Sy, Sz만큼 Scaling(확대/축소)

수식이 (x*sx, y*sy, z*sz)가 되므로

_11, _22, _33 성분이 0이되면

0이되어 성분값이 0으로 없어진다.

 

다이렉트X에서 제공하는 함수는 다음과 같다.

D3DXMATRIX matMatrix; D3DXMatrixScaling(&matMatrix, 1.0f, 1.0f, 1.0f);

 

 

3. 회전 행렬 (Rotation Matrix)

DirectX는 왼손좌표계를 쓴다.

Radian(라디안)과 Degree(호도값)가 있다.

1라디안은 약 57.3도에 해당한다.

파이 라디안은 180도이다.

 

180 degree = π radian

1 degree = π / 180 radian

x degree = x * π / 180 radian

 

π radian = 180 degree

1 radian = 180 / π degree

x radian = x * 180 / π degree

 

인간은 호도값, 컴퓨터는 라디안 값을 선호해서

변환하는 함수를 알 필요가 있는 부분

 

다이렉트X에서 제공하는 함수는 다음과 같다.

D3DXToDegree( radian ) => radian 값을 degree 값으로 변환. D3DXToRadian( degree) => degree 값을 radian 값으로 변환

 

위 사진 순서대로 z축 회전 행렬, x축 회전행렬, y축 회전행렬이다.

고싸-싸코만 외워주면 편하다.

 

다이렉트X에서 제공하는 함수는 다음과 같다.

 

z축 : D3DXMatrixRotationZ(&행렬, f라디안)

x축 : D3DXMatrixRotationX(&행렬, f라디안)

y축 : D3DXMatrixRotationY(&행렬, f라디안)

XYZ 회전이 적용된 행렬 : D3DXMatrixRotationYawPitchRoll(&행렬, fyaw, fpitch, froll)

Pitch : X축,Yaw : Y축, Roll : Z축

Roll -> Pitch -> Yaw 순으로 곱해진다.

임의의 축 : D3DXMatrixRotationAxis(&행렬, vector3정점벡터, f각도)

 

 

 

COMMENT