반응형

대부분 Intellisence Or 확장 Plugin이 원인이 되는 경우가 많은데

다 제거 했는데도 렉이 발생 할 경우

 

Local 캐쉬를 지워보자

파일 경로는

C:\Users\사용자명(본인컴퓨터명)\AppData\Local\Microsoft\VisualStudio\17.0_2e98ed8c\ComponentModelCache

폴더 하위에 있는 4가지 파일 모두 제거 하고 VS 재실행!!!

 

 

 

반응형
반응형

 

master -> release 로 변경

반응형
반응형

Public을 인스펙터에서 수정하지 못하게 하고 싶을때

 

 

사용 예시:

1
2
[ReadOnly] public AnimationState currentCarAnimationState = AnimationState.Idle;
[ReadOnly] public AnimationState currentCharAnimationState = AnimationState.Idle;
cs

 

 

 

 

커스텀 Attribute

소스 코드:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using UnityEngine;
using System;
 
#if UNITY_EDITOR
namespace UnityEditor
{
    [CustomPropertyDrawer(typeof(ReadOnlyAttribute), true)]
    public class ReadOnlyAttributeDrawer : PropertyDrawer
    {
        // Necessary since some properties tend to collapse smaller than their content
        public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
        {
            return EditorGUI.GetPropertyHeight(property, label, true);
        }
 
        // Draw a disabled property field
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            GUI.enabled = !Application.isPlaying && ((ReadOnlyAttribute)attribute).runtimeOnly;
            EditorGUI.PropertyField(position, property, label, true);
            GUI.enabled = true;
        }
    }
}
#endif
 
[AttributeUsage(AttributeTargets.Field)]
public class ReadOnlyAttribute : PropertyAttribute
{
    public readonly bool runtimeOnly;
 
    public ReadOnlyAttribute(bool runtimeOnly = false)
    {
        this.runtimeOnly = runtimeOnly;
    }
}
cs

 

 

 

 

 

반응형
반응형

UnityEngine.AssetBundle:LoadAsset_Internal crash

 

간헐적으로 에셋번들 불러올때 crash가 나는 상태

특히 저사양기기에서 memory부족 crash가 나는 상태 

 

프로젝트에서 사용하고 있는 Shader를 아래 목록 (Project Settings / Graphics)에 

추가한 상태였으나 제거함

(기본만 남기고 다른 Shader의 굳이 포함x)

 

참고로 위 목록에 Shader 추가하면 빌드 타임 상당히 많이 늘어남...!

반응형
반응형

e/unity: could not produce class with id 137. this could be caused by a class being stripped from the build even though it is needed. try disabling 'strip engine code' in player settings.

 

 

에셋번들 불러올때

빌드에 class가 포함되지 않아서 정상적으로 노출되지 않는 현상

 

Mono 빌드에서는 발생안하는데

IL2CPP 빌드에서 발생

 

Strip Engine Code 체크 해제

 

 

반응형
반응형

Execution failed for task ':unityLibrary:BuildIl2CppTask'

 

Mono빌드는 잘되다가 IL2CPP 빌드가 안되는 오류가 발생했다


구글링 해봤는데 SDK / NDK 설정에 오류가 있어서 해당 IL2CPP 빌드가 안된다고 하는데 ...

링크: Execution failed for task ':unityLibrary:BuildIl2CppTask'. · Issue #440 · juicycleff/flutter-unity-view-widget · GitHub

대부분 위의 링크타서 하는 얘기처럼 NDK 경로 설정 제대로 해주면 된다고 한다.

 

내 케이스의 경우는 달랐다...

NDK 경로 설정 / 세팅된 버전을 지정해줘도 계속 빌드 오류가 발생했다...

 

다양한 삽질을 한 결과

내 케이스의 해결 방법은

ARMv7 (32비트용 빌드) 체크 해제 였다...

 

반응형
반응형

64비트 앱 대응 - Unity 5.6 에서 Unity 2017.4 LTS 버전으로 업데이트


프로젝트를 시작하면, 웬만하면 처음 선택한 엔진 그대로 유지하면서 엔진 업데이트를 하지 않았다.

지금까지 엔진 버전 업데이트를 선호하지 않았던 이유는 없었던 버그가 발생하기도 하고 기존 플러그인과의 충돌이 나서 해결하기 어려워지는 경우도 많았기 때문이다...


하지만 안타깝게도 이번에 구글에서 혁신(?)을 위해 64비트 앱을 필수적으로 요구하게 되었다... 

메일을 요렇게 친절하게 보내주셨다...



어찌됫든 64비트 앱 대응을 위해 구글링한 결과 내가 쓰고 있는 유니티 5.6버전은 64비트 빌드가 안된다...

현재기준(2019.05.28)으로 2017.4 LTS 버전 2018.2 이상만 64비트 빌드가 가능하다는 사실에 어쩔수 없이 5.6에서 2017.4 LTS로 업데이트를 감행하게 되었다.

https://blogs.unity3d.com/kr/2019/03/05/android-support-update-64-bit-and-app-bundles-backported-to-2017-4-lts/

(나중에 5.6도 64비트 빌드 지원해주려나?)



무거운 프로젝트는 아닌지라 상위 버전으로 변경하는 시간은 생각보다 안걸렸지만 문제는 2017.4 LTS로 옮기고 빌드가 정상적으로 안된다 문제에 부딪혔다...

문제는 찾아본 결과 기존의 SDK, JDK, NDK가 옛날 버전이어서 이 외부 툴도 같이 업데이트를 해줘야했다... 그래서 2017.4 에서 요구하는 SDK, JDK, NDK 도 모두 업데이트 한 후 빌드한 결과, 빌드는 다행히 성공했다!

 


(수정: 2018.4 LTS -> x86는 제외 하고 빌드)


(참고로 빌드할떄 ARM64를 꼭 체크해줘야 64비트빌드가 된다!! 

+수정: x86는 체크에서 제외하자)



빌드 성공의 기쁨도 잠시 앱 테스트를 진행하려고 하는데 앱들어가자마자 진행하는 구글 플레이 로그인에서 화면이 멈췄다.... Google Play Plugin이 말썽이었던 것이었다...


원래 Google Play Plugin v.0.9.50 을 사용하고 있었지만 이 플러그인을 사용할 경우 아예 앱이 제대로 동작하지 않았다. 아마도 2017.4 LTS 최선버전과 호환이 제대로 되지 않아서 생기는 문제 같다.

옛날에도 Authentication이 제대로 되지않아 애 먹었던 기억이 있었는데 해결하는데 정말 하루종일 걸렸다...



글로 설명하기 힘들정도로 구글링에서 찾은 정말 다양한 방법으로 플러그인을 삭게, 설치, 재설치, 빌드 방법 변경 등을 했는데 결국 성공한 케이스를 요약하자면


1. Unity 2017.4.27 LTS 가장 최신 버전 사용 (2019.05.27 기준)

2. Google Play Plugin v.0.9.64 가장 최신 버전 사용 (2019.05.27 기준)

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

3. 원래 Google Play Plugin v.0.9.50 을 사용하고 있었기때문에 Google Play Plugin과 관련있는 폴더 전부 삭제 (GooglePlayGames, PlayServicesResolver, Plugins/Android) 그리고 해당하는 Meta 데이터까지 깔끔하게 삭제!! (제일 중요한 부분인듯)

4. 새로운 플러그인 Google Play Plugin v.0.9.64 설치

5. Assets -> Play Service Resolver - > Android Resolver - > Resolve (원래는 package를 열면 자동으로 해주는데 지웠다 설치했다 반복하니까 자동으로 안될때도 있더라...)

6. Window -> Google Play Games -> Setup -> Android Setup 다시 설정

7. 빌드할때 Internal로! 

(Gradle버전으로 할 경우 플러그인의 버그인지는 모르겠으나 Google Play Authentication가 정상적으로 되지 않음... 그래서 안타깝게도 현재는 Android App Bundle형식으로 앱을 빌드 할 수가 없음 ㅠㅠ)

8. 기도




이번에 업데이트를 하면서 느낀게 나같은 소규모 인디게임은 어찌어찌 2017버전으로 큰 문제 없이 업데이트를 할 수 있겠지만 유니티4, 5 를 활용한 정말 오래된 게임은 어떻게 64비트 앱에 대응할까 궁금하다...





반응형
반응형

유니티 엔진 팁 1탄

(2019.01.09 작성일 기준)



1. 유니티 관련 커뮤니티 사이트


네이버 카페 - 유니티허브

https://cafe.naver.com/unityhub


네이버 카페 - 인디게임 개발자 쉼터

https://cafe.naver.com/indiedev



2. 유니티 홈페이지


공식 유니티 홈페이지

https://unity3d.com/kr


에셋스토어 : 에셋 활용할때는 에셋스토어

https://www.assetstore.unity3d.com/kr/#!/home


유니티 엔진 API (Documentation) : 개발할때 가장 많이 사용하는 문서중 하나, 버전에 맞게 사용할 필요가 있다!

https://docs.unity3d.com/Manual/ManualVersions.html


3. 유니티 관련 영상 및 강의


Brackeys 유튜브 유니티 강의 : 유투브 유니티 강의중 가장 깔끔하고 알아듣기 쉽게 알려주는곳!

https://www.youtube.com/channel/UCYbK_tjZ2OrIZFBvU6CCMiA


NDC 유튜브: Nexon Developer Conference를 녹화하고 공개한 곳, 은근히 볼만하다

https://www.youtube.com/channel/UC3ZjKSQX9JJRCjw3aSrBXSg


인프런: 유니티뿐만아니라 다른 프로그래밍 언어 전반을 알려주는곳. 사실 유니티 강의는 들어본적이 없어서 강의가 좋은지는 잘모르겠다.

https://www.inflearn.com/


ASK GameDev : 게임 개발 전반적인 것들에 대해 쉽게 설명하고 있는 유튜브 채널

https://www.youtube.com/channel/UCd_lJ4zSp9wZDNyeKCWUstg





반응형

+ Recent posts