블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2804)
Unity3D (860)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (234)
협업 (61)
3DS Max (3)
Game (12)
Utility (140)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

[추가]

- 상대경로 기준 : 프로젝트 폴더

 

프로젝트 하위 폴더

프로젝트 하위에 위와 같이 Keystore 폴더 아래 debug.keystore 파일이 있을 때 상대경로는 아래와 같다.

[상대경로] ./Keysotre/debug.keystore

 

----------------------------------------------------------------------------------------------------------

유니티의 안드로이드 빌드 환경을 설정에서 키스토어 파일을 등록할 때, 일반적으로 Browe Keystore 버튼으로 파일을 등록하게 되면 위 사진과 같이 절대경로가 설정된다.

 

자동 빌드 환경이나, 서로 다른 빌드 머신에서 빌드하고자 할 때 굉장히 짜증나는 부분이며 제대로된 해결 방법은 없고 편법을 사용해야 하는 것을 보인다.

 

유니티 상단 메뉴 -> Edit -> Project Settings -> Editor -> Asset Serialization

값을 Force Text 로 변경한다.

이 작업은 다른 설정 또는 .unity 파일도 모두 변경합니다.

 

프로젝트 경로 -> ProjectSettings 폴더 -> ProjectSettings.asset 을 열면 텍스트로 변환되어 있다. 이중 AndroidKeystoreName 을 검색하여 절대 경로를 상대 경로로 변경한다.

 

유니티를 다시 실행시켜 결과를 확인한다.

 

 

빌드 머신에서 실행해 결과를 확인한다.



출처: https://pjc0247.tistory.com/44 [pjc0247]

 

[Unity] Android keystore 경로 상대경로로 지정하기

유니티의 안드로이드 빌드 환경을 설정에서 키스토어 파일을 등록할 때, 일반적으로 Browe Keystore 버튼으로 파일을 등록하게 되면 위 사진과 같이 절대경로가 설정된다. 자동 빌드 환경이나, 서로

pjc0247.tistory.com

 

반응형
Posted by blueasa
, |

 

[링크] slee16.blog.me/221706003164

 

Tip : Unity 자이로 & 가속도 센서 관련

​기기의 기울기를 사용하는 게임제작 외주를 하고 있는데, 분명 나온지 오래된 기능이고 많이 사용했을 것...

blog.naver.com

 

반응형
Posted by blueasa
, |
    /// <summary>
    /// 회전 없이 유도 이동만 하는 함수
    /// </summary>
    /// <param name="_trTarget">목표 지점</param>
    /// <param name="_v3CurrentDirection">현재 오브젝트가 이동할 방향</param>
    /// <returns></returns>
    IEnumerator Move_Guided(Transform _trTarget, Vector3 _v3CurrentDirection)
    {
        Transform trTarget = _trTarget;
        Vector3 v3TargetDirection = (trTarget.position - this.transform.position).normalized;
        Vector3 v3CurrentDirection = _v3CurrentDirection;
        if (v3CurrentDirection == Vector3.zero)
        {
            v3CurrentDirection = v3TargetDirection;
        }

        float fLookSpeed = 7f;
        float fMoveSpeed = 50f;
        float fAccumTime = 0f;

        while (0.01f < (this.transform.position - trTarget.position).sqrMagnitude)
        {
            // Rotate
            v3TargetDirection = (trTarget.position - this.transform.position).normalized;
            v3CurrentDirection = Vector3.RotateTowards(v3CurrentDirection, v3TargetDirection, Time.deltaTime * fLookSpeed, 0f);
            v3CurrentDirection = v3CurrentDirection.normalized;
            // Translate
            fAccumTime += Time.deltaTime * fMoveSpeed;
            this.transform.localPosition += (v3CurrentDirection * fAccumTime);
            yield return null;
        }

        yield return null;
        
        // 도착했으면 Destroy or Recycle
    }

 

보통 유도 기능 만들때 오브젝트 자체를 회전시키고, transform.forward 방향으로 Translate만 하면 됐는데

 

이번에는 유도 기능으로 이동만 하고 회전하지 않게 하기 위해서

Direction Vector를 따로 두고 Vector3.RotateTowards()를 사용해서 이동하게 만들었다.

 

P.s. 적당히 테스트 한거니 더 이쁘게 만들고 싶은분은 직접 수정 및 테스트 해보세요.

 

[참조] https://docs.unity3d.com/ScriptReference/Vector3.RotateTowards.html

반응형
Posted by blueasa
, |

IOException: Sharing violation on path ..\Temp\StagingArea\assets\bin\Data\Managed\tempStrip\Firebase.Analytics.dll

 

빌드하다가 못보던 dll 관련 빌드 에러가 나서 확인해보니 백신 관련 문제였다.

백신에서 해당 프로젝트 폴더를 예외처리 하던지, 백신을 잠시 끄자.

 

 

[참조]

Answer by timkeosa · '17년 Jul월 25일 PM 06시 04분

I encountered a very similar issue and found it was caused by the antivirus software. By suspending the antivirus process, I was able to work around the problem.

Try configuring your AV to "exclude" your project directory, but if that fails then you'll need to either disable or temporarily suspend the AV's process.

 

 

[출처] https://answers.unity.com/questions/1381688/ioexception-sharing-violation-on-path-after-build.html

 

IOexception: Sharing violation on path after build - Unity Answers

 

answers.unity.com

 

반응형
Posted by blueasa
, |

[Error Message]

This release is not compliant with the Google Play 64-bit requirement

The following APKs or App Bundles are available to 64-bit devices, but they only have 32-bit native code: 93.

Include 64-bit and 32-bit native code in your app. Use the Android App Bundle publishing format to automatically ensure that each device architecture receives only the native code it needs. This avoids increasing the overall size of your app.

https://developer.android.com/distribute/best-practices/develop/64-bit

 

[Answer]

For those who have this problem since yesterday (August 19, 2019):

In Player Settings > Other Settings you must now uncheck the x86 box (It is for the 32-bit Intel architecture).


You will now only have the following warning:

The device types on which your application can be installed will be more restricted.

But, in my case, it drops from 12392 devices to 12385 devices.

Here is the opinion of a Unity member on the issue:

x86 is used by less than 0.4% of all Android devices, so it shouldn't have any real impact.

x86 target will be removed completely in Unity 2019.3.

 

[출처]

https://stackoverflow.com/questions/57332053/unity-aab-not-compliant-with-the-google-play-64-bit-requirement

 

Unity aab not compliant with the Google Play 64-bit requirement

I have a Unity project that I'm switching from APKs to AABs (app bundles). Previously, when I was building it as an APK, the Google Play Console told me the APK was 64-bit compliant. Now that I'm

stackoverflow.com

 

반응형
Posted by blueasa
, |

Unity Editor-Edit-Preferences-General에 보면 Script Changes While Playing 옵션이 있다.

 

기본이 위 스크린샷 처럼 'Recompile And Continue Playing'이라서, 플레이 중에 소스 수정하면 리컴파일 되고 에러가 열심히 난다

 

플레이 중엔 리컴파일 안되도록 막기 위해서 2번째인 'Recompile After Finished Playing'로 바꿨다.

 

 

[출처] 게임코디-핑크님

반응형
Posted by blueasa
, |

플랫폼 대응을 위해 유니티 버전을 2018.3.5f1에서 2018.4.2f1로 버전업을 하였는데 그 뒤로 비주얼스튜디오를 유니티에 붙이면 멈춤 현상이 일어났다. 당연히 브레이크 포인트에 걸리지 않은 상태였고 Attach를 해제하면 정상작동을 하였다.

원인은 유니티의 오래된 버그라고한다.

해결방법은 비주얼스튜디오에 남아있는 모든 중단점을 삭제한 후 다시 Attach하게되면 정상작동하게된다. 이 후 브레이크포인트를 걸고 작업 후 다시 Attach를 해도 문제없이 작동한다.

출처 : https://forum.unity.com/threads/unity-freeze-when-connecting-vs-debugger.529863/

 

 

[출처] https://puzi.tistory.com/19

 

[비주얼 스튜디오] 디버그를 위해 Unity에 Attach할 시 Freeze현상

플랫폼 대응을 위해 유니티 버전을 2018.3.5f1에서 2018.4.2f1로 버전업을 하였는데 그 뒤로 비주얼스튜디오를 유니티에 붙이면 멈춤 현상이 일어났다. 당연히 브레이크 포인트에 걸리지 않은 상태였고 Attach를..

puzi.tistory.com

 

반응형
Posted by blueasa
, |

Google play console에 처음 apk를 등록하는 분들이라면 한번씩 겪게되는 상황이 있습니다. 바로 keystore 생성을 하지않아 apk 업로드 실패하는 상황이죠....

 

유니티 개발자들은 별 어려움 없이 몇가지 작업으로 keystore를 생성할 수 있습니다.

 

1. File -> BuildSettings -> PlayerSetting ->Publishing setting 으로 이동하면 다음과 같은 화면을 볼 수 있습니다.

 

 

 

우리는 새 키스토어를 생성하려는 것이기 때문에

2. Create a new keystore를 눌러줍니다.

 

3. Keystore password

비밀번호를 입력하고 밑에같에 확인란 까지 같이 입력해줍니다.

 

4. Browse Keystore를 눌러줍니다. 

 

네... 몇몇분들도 저랑 같은 생각을 하시지 않을까합니다. 새로 생성한는데 '왜 키스토어파일을 찾냐..?'

 

직접해본결과 create a new keystore를 체크한 상태에서는 파일을 찾는게아니라.. 새로생성될 keystore 파일의 저장 경로와 저장될 파일명을 세팅하는 것이었습니다. 

(헤깔리게 하지마 ㅜㅜㅜㅜㅜ)

 

 

 

5.Key Alias 생성

위에서 keystore 비밀번호 입력 까지 정삭적으로 끝냈다면 Alias를 새로 생성할 수 있습니다.
Unsignes를 눌러 Create new key를 눌러줍니다.

 

6. 정보 입력

 

Alias - 아무 이름 지어서 적어 넣습니다.

password - 비밀번호 안까먹을 만한걸로 적어줍니다.

confirm - 비밀번호 재확인

validity( years) - 50년은 충분한 시간이라고 생각됩니다. 그냥 내비둡니다.

 

나머지 밑에는 건너뛰고 
 country code 만 Ko로 적고  create Key를 눌러 생성을 하였습니다.

 

이제 새로생성한 keystore와 key를 세팅해주고 비밀번호를 정상적으로 입력해줍니다.

 

7. apk 생성

네 이제 끝까지 왔습니다. 

 

 

8. apk 업로드 

 

위의 과정을 잘 따라 하셨다면 정상적으로 업로드된 화면을 볼 수 있으셨을 것 입니다. 



출처: https://enjoylifeforme.tistory.com/entry/Unity-Keystore-생성 [즐거운하룽]

 

[Unity] Keystore 생성

[Unity] Keystore 생성 Google play console에 처음 apk를 등록하는 분들이라면 한번씩 겪게되는 상황이 있습니다. 바로 keystore 생성을 하지않아 apk 업로드 실패하는 상황이죠.... 유니티 개발자들은 별 어려움..

enjoylifeforme.tistory.com

 

 

반응형
Posted by blueasa
, |

OS : Windows7 64bit

Unity : 2018.4.13f1

Firebase : 6.9.0


Generation of the Firebase Android resource file google-services.xml from Assets/Firebase/google-services.json failed.
If you have not included a valid Firebase Android resources in your app it will fail to initialize.
"C:\Project\git\ProjectName\Assets\Firebase\Editor\generate_xml_from_google_services_json.exe" -i "Assets/Firebase/google-services.json" -l

Traceback (most recent call last):
  File "", line 446, in 
  File "", line 289, in main
  File "", line 228, in argv_as_unicode_win32
AttributeError: 'module' object has no attribute 'wintypes'
generate_xml_from_google_services_json returned -1


Firebase 6.9.0을 유니티에 Import하고 위와 같은 에러를 보게 됐다.

결론적으로 wintypes attribute가 없다는 말인데 저게 뭔지 몰라서 한참 찾아 헤메다가

아래 링크에서 답을 찾았다.

 

[해결방법] 원본 (https://github.com/firebase/quickstart-unity/issues/540)

[해결방법] Detail (https://github.com/firebase/quickstart-unity/issues/540)

 

결론적으로 Firebase 6.9.0이 Windows7을 제대로 지원하지 않는 것 같다.

그래서 generate_xml_from_google_services_json.exe 파일을 다시 컴파일하는 작업을 위해서 설명하고 있다.

Python 2.7이 필요한데, Python 2.7.9 이상을 설치해야 pip가 Python에 기본적으로 들어 있다.

나는 아래 링크의 2.7.17을 깔았다.

 

[Python 2.7.17 다운로드] https://www.python.org/downloads/release/python-2717/

 

해결방법 Detail 설명대로 다하고나니 이제 에러가 뜨지 않는다.

 

 

P.s. Windows7 지원 종료가 되면서 여기저기 다른 곳에서도 지원을 종료하면서 개발에 피해가 오고 있는 걸 체감하고 있다.

    현재 피해 당하고 있는 건 SourceTree와 Firebase..-_-

 

 
반응형
Posted by blueasa
, |

[수정] 2021-06-10

Height 값 참조 오류 수정(참조 값 manualHeight -> activeHeight로 변경)

 

[스크립트 파일]

UISafeAreaOffsetController.cs
0.00MB

 

아래 위치와 같이 Anchor의 하위에 GameObject를 하나 만들고,

인스펙터와 같이 Top/Bottom에 따라 만들어진 GameObeject를 Drag&Drop 해서 Link 한다.

 

 

위와 같이 셋팅해 주면 Fan이 Top쪽 Safe Area가 있으면 그에 맞게 좀 더 내려온다

(Bottom은 같은 형태로 List Offset List_Bottom에 Link 해주면 된다.)

 

대충 만들어서 넣어놔서 정리좀 하고 싶지만 다음 기회로..

필요하신 분은 받아서 써보시고 개량해서 공유 좀 해주세요~

 

 

[참조] https://blueasa.tistory.com/2272

반응형
Posted by blueasa
, |