tmp에 date 결과값 저장

tmp=$(date +%Y.%m.%d_%H:%M:%S)


echo를 이용한 응용도 가능함
현재 파일리스트 생성

rm file_list
echo $(ls -1) >> file_list

https://blog.unity.com/kr/technology/tales-from-the-optimization-trenches-saving-memory-with-addressables

 

어드레서블 에셋 시스템으로 메모리 최적화하기 | Unity Blog

위에서 발생한 문제를 해결하기 위해 앞서 생성한 세 번들에 들어가는 모든 요소를 고려해 보겠습니다. 번들에 배치한 것은 세 가지 프리팹이지만, 프리팹의 종속성으로 해당 번들에 암묵적으

blog.unity.com


https://github.com/patrickdevarney/AddressablesMemoryOptimizations

변경전

            using (var unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
            using (var currentActivityObject = unityClass.GetStatic<AndroidJavaObject>("currentActivity"))
            {
                var packageName = currentActivityObject.Call<string>("getPackageName");
                                    
                using (var uriClass = new AndroidJavaClass("android.net.Uri"))
                using (var uriObject = uriClass.CallStatic<AndroidJavaObject>("fromParts", "package", packageName, null))
                using (var intentObject = new AndroidJavaObject("android.content.Intent", "android.settings.ACTION_SETTINGS", uriObject))
                {
                    intentObject.Call<AndroidJavaObject>("addCategory", "android.intent.category.DEFAULT");
                    intentObject.Call<AndroidJavaObject>("setFlags", 0x10000000);
                    currentActivityObject.Call("startActivity", intentObject);
                }
            }

 

변경 후

            using var unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            using AndroidJavaObject currentActivityObject = unityClass.GetStatic<AndroidJavaObject>("currentActivity");
            string packageName = currentActivityObject.Call<string>("getPackageName");
            using var uriClass = new AndroidJavaClass("android.net.Uri");
            using AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("fromParts", "package", packageName, null);
            using var intentObject = new AndroidJavaObject("android.content.Intent", "android.settings.APPLICATION_DETAILS_SETTINGS", uriObject);
            intentObject.Call<AndroidJavaObject>("addCategory", "android.intent.category.DEFAULT");
            intentObject.Call<AndroidJavaObject>("setFlags", 0x10000000);
            currentActivityObject.Call("startActivity", intentObject);

 

android.settings.ACTION_SETTINGS을 사용하면 에러 발생
android.settings.APPLICATION_DETAILS_SETTINGS으로 변경해야함

 

 

참고

https://developer.android.com/reference/android/provider/Settings#ACTION_APPLICATION_DETAILS_SETTINGS

@echo off 
rename "Temp_*.json" "/////*.json"

Json파일의 Temp_ 접두사 제거
접두사와 뒤의 '/'의 수가 같아야함

01 - Render to texture를 이용한 방법

매우 잘 동작했으나, Canvas의 Reder Mode가 Screen Space - Overlay라서 실패.
UI를 카메라에 담을 방법을 못찾음
https://github.com/zephyo/UI-Blur-LWRP-2020

유니티 최적화 툴

 

https://blog.unity.com/kr/games/build-stunning-mobile-games-that-run-smoothly-with-adaptive-performance

 

랜더링 주기를 조절 해주는 방법.
글로벌로 적용됨.
아마 안되겠지만 각 객체마다 하는방법이 있는지 궁금, 아니면 거리나 카메라라도

https://blog.unity.com/kr/technology/how-on-demand-rendering-can-improve-mobile-performance

 

온디맨드 렌더링을 이용한 모바일 성능 개선 | Unity Blog

포럼에서 온디맨드 렌더링을 어떻게 활용하고 있는지 알려주세요. Windows, macOS, WebGL, iOS, Android에서 Unity 에디터와 스탠드얼론 플레이어를 대상으로 테스트를 완료했으나, 피드백은 언제든지

blog.unity.com

 

https://docs.unity3d.com/ScriptReference/TrueTypeFontImporter.html

 

Unity - Scripting API: TrueTypeFontImporter

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. Close

docs.unity3d.com

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

#if UNITY_EDITOR
using UnityEditor;
public class FontIncludeTester : MonoBehaviour
{
    public Font font;

    public void Do()
    {    	
        var _path    = AssetDatabase.GetAssetPath(font);
        var _impoter = AssetImporter.GetAtPath(_path) as TrueTypeFontImporter;

        if (null == _impoter) return;

        _impoter.includeFontData = !_impoter.includeFontData;
        _impoter.SaveAndReimport();
    }
	
    // 버튼 생성 에디터 코드
    [CustomEditor(typeof(FontIncludeTester))]
    public class FontIncludeTesterEditor : Editor
    {
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            if (true == GUILayout.Button("테스트"))
            {
                (target as FontIncludeTester).Do();
            }
        }
    }
}
#endif

- UI를 번들에서 로드하도록 수정 했더니 메모리에 동일한 폰트가 중복으로 로드되는 현상이 발생
- 동일한 폰트여도 각 번들마다 개별적으로 로드되는 것으로 추정
- 폰트 에셋의 Include Font Data 체크 해제를 해주면 폰트가 번들에 포함되는것을 막을 수 있다.
- Include Font Data 체크를 해제하면 해당 폰트가 적용된 UI는 기본 폰트로 출력된다. 
- 작업은 체크를 한 상태에서 하고, TrueTypeFontImporter를 이용해 번들 빌드전에 includeFontData을 false로 만들어주고, 번들 빌드가 끝난 후 다시 true로 만들어 주면된다.(참고 : https://codingstarter.tistory.com/38)

 

IOS 11부터 UIImagePickerController를 사용하기 위한 권한 요청 필요없어짐.

https://eeyatho.tistory.com/141

 

Swift ) UIImagePickerController 권한 필요없음 - EEYatHo iOS

한줄 요약 iOS11부터, UIImagePickerController로 사진을 가져올 때는, 라이브러리 권한이 필요없게 되었습니다. [ 관련 WWDC17 영상 ] WWDC말고 관련된 문서가 없네요.. 정리좀 해놓지..ㅡ.ㅡ What's New in Phot..

eeyatho.tistory.com

https://developer.apple.com/videos/play/wwdc2017/505/?time=136

+ Recent posts