[Unity] 모바일에서 Input.GetMouseButton이 안먹힌다면...
Unity/TroubleShooting 2023. 11. 13. 22:54[Unity] 모바일에서 Input.GetMouseButton이 안먹힌다면...

🚩개요 회사 프로젝트에서 특정 씬을 갔다오면 Input.GetMouseButtonDown() Input.GetMouseButton() Input.GetMouseButtonUp() 3총사가 안먹혔다. 찾고보니 골때리는 해결법이라서 기록해둔다. 🔥본문 결론부터 말하자면 원인은 LeanTouch라는 에셋이었다. 이 에셋의 LeanTouch 컴포넌트를 보면 Disable Mouse Emulation 이라는 bool 변수가 있다. 이 변수가 어떤짓을 해버리냐면... 바로 Input.simulateMouseWithTouches 를 false로 만들어버린다...!! 저게 false가 돼버리면 터치 입력을 마우스 입력으로 받아들이질 않는다. (기본값은 당연히 true) 심지어 LeanTouch는 기본값으로 Input...

[Unity 2D] Scrolling Backgorund
Unity/2D 2023. 8. 10. 15:55[Unity 2D] Scrolling Backgorund

✌️개요 런게임의 무한으로 흘러가는 배경으로 사용하는 그것 트랜스폼으로 움직이고 이어붙이면 FPS가 떨어지면 아래 스샷처럼 틈이 발생하게 된다. 위의 문제를 차단하기위한 방법은 Material의 texture offset을 활용하는 방법 🔥본문 1. 텍스쳐 세팅에서 Wrap Mode를 Repeat으로 변경 2. SpriteRenderer 배경을 3D Object - Quad로 변경 3d Quad를 쓰는 이유는 Spritre Renderer에서 텍스쳐 offset을 사용하면 이미지가 이상하게 잘려보인다. 3. 다음 코드 사용 public class OffsetScrolling : MonoBehaviour { public float scrollSpeed; private Renderer renderer; pr..

[Unity 최적화] Dynamic Resolution을 적용해보자!
Unity/Tips 2023. 8. 2. 19:52[Unity 최적화] Dynamic Resolution을 적용해보자!

✌️개요 2024 .04 수정 Unity의 Dynamic Resolution이란 원하는 Camera를 정해서 런타임 시 현재 퍼포먼스에 맞춰서 그 Camera의 해상도가 동적으로 조정되게 하는 기능이다. 비슷한 작업으로는 Upscale Sampling이있다. Upscale Sampling은 Camera가 렌더텍스쳐에 렌더링하게 설정해두고 렌더텍스쳐의 해상도를 조절하는 방식이다. 둘다 결과적으로 하는일은 비슷하다. 중요한건 UI의 해상도는 그대로 두고 인게임 렌더링의 해상도만 열화를 시켜야 티가 덜나게된다. 📌이 글은 Unity 2020 3.35버전, 안드로이드 플랫폼, Built-in 파이프라인을 기준으로 설명합니다. 🔥본문 먼저 사전준비를 해보자 1. Player세팅에서 Frame Timing Stat..

[Unity] 유니티 에디터 OpenGL/Vulkan 그래픽스API로 열기
Unity/Tips 2023. 8. 2. 18:49[Unity] 유니티 에디터 OpenGL/Vulkan 그래픽스API로 열기

빌드의 그래픽 API를 변경하는건 쉽지만 유니티 에디터는 윈도우 기준으로 다이렉트X11으로 실행된다. 이러면 간혹 모바일로 빌드했을 때 모바일에서만 이상하게 보이는 쉐이더들이 포착되기도 하는데, 빌드에서만 관찰할 수 있다는건 정말 골치가 아프다. 빌드와 에디터에서 똑같은 그래픽을 보기위해 에디터의 그래픽스 API를 바꿀려면 다음과 같다. 📌허브에서 "커맨드 라인 인자 추가" 허브에서 프로젝트 옆에 점3개를 누르면 "커맨드 라인 인자 추가"가 있다. [Vulkan] -force-vulkan [OpenGL] -force-glcore [OpenGL ES] -force-gles 위 인자를 추가해주면 해당하는 그래픽스 API로 열린다. 확인하는 방법은 유니티 창을 봤을 때 이렇게 끝에 처럼 적용된 그래픽스API가..

[Unity] Adressable에셋 코드로 링크(인스펙터 등록)하기
Unity/Tips 2023. 6. 24. 22:07[Unity] Adressable에셋 코드로 링크(인스펙터 등록)하기

개요 Adressable을 프로젝트에 도입할 때 관리할 Adressable 에셋들을 인스펙터 리스트에 담아두거나 하고싶은데 Adressable은 여러 에셋을 한번에 드래그해서 리스트에 담을 수 없다. 그래서 코드로 List 타입에서 List타입으로 복사하는 방법을 기록한다. 본문 코드는 다음과 같다. [SerializeField] private List adressableSprites; [SerializeField] private List tempSprites; #if UNITY_EDITOR [Button] public void SpritesToAdressableList() { adressableSprites = new List(); foreach (var spr in tempSprites) { stri..

[Unity] Admob사용 시 Screen.Orientation을 건드리면 생기는 문제
Unity/TroubleShooting 2023. 5. 31. 14:31[Unity] Admob사용 시 Screen.Orientation을 건드리면 생기는 문제

개요 유니티 프로젝트에 광고를 넣기 위해 구글 애드몹SDK를 넣어서 구현했다. 우리 프로젝트는 기본적으로 가로화면 이지만 미니게임에 따라서 Screen.Orientation 을 건드려서 화면을 강제 회전을 시켰다. 그런데, 화면 회전 이후에 광고를 호출하면 광고가 호출되지 않는 버그가 있었다. (특히 iOS에서) 우여곡절끝에 발견한 해결법을 기록한다. 본문 먼저 해본 방법들은 이렇다. 광고 SDK 초기화를 화면을 돌린 이후에 다시 호출 (MobileAds.Initialize();) => 효과는 없었다. 광고를 호출하기 전에 화면을 가로로 다시 회전시키고 (앱이 시작할 때 가로였으니까) 광고가 끝나면 광고 호출 전 Screen.Orientation을 다시 복구 =>처음엔 되나 싶었지만 완벽하지 못했다. 그..

image