Programing 93

[React Native] run-android 도중 발생하는 초기 오류 해결

npx react-native doctor로 확인한 내역... 오늘 닥터를 몇 번이나 호출했는지 모르겠다 처음에는 adb도 에러( Adb - No devices and/or emulators connected. Please create emulator with Android Studio or connect Android device. )가 떴는데, 안드로이드 스튜디오에서 가상 머신을 실행시켜주고 나니 해결이 되었다 JDK Error jdk8을 다운받으래서 다운받았었는데 이번엔 jdk버전이 17 이상 20이하여야 된댄다... https://www.oracle.com/java/technologies/downloads/#jdk17-windows 새롭게 jdk17을 다운받아준다 사용자 변수와 시스템 변수에 각각..

[React Native] 새 프로젝트 생성 시 android 폴더 미생성

react-native run-android 명령어가 안 먹히고 module이 없다... 만 반복해서 한참 헤메던 끝에 남들의 rn 프로젝트랑 내 컴퓨터에 생성된 rn 프로젝트의 폴더 상태가 다르단 걸 깨달음 원래 이렇게 다 있고 android 폴더에서 작업을 진행하면 되는 건데 내 프로젝트 폴더는 이게 전부였다 처음 생성해 보는 거라 이상하다고도 여기질 못함 npm uninstall -g react-native-cli npm install -g react-native-cli npm install -g react-native cmd에서 react native cli을 언인스톨 해주고 다시 인스톨 해 준다 다운받는 과정에서 뭐가 잘못됐었는지... 환경변수 설정에서 뭐가 잘못됐는지... 다시 다운받고 npx..

[Unity] 버튼 위에서 드래그 시, 드래그 이벤트가 막히는 문제

스크롤뷰에 버튼들을 넣고 게임을 실행시켜 보니, 버튼들의 위에서는 스크롤뷰가 제대로 스크롤 되지 않았다 원인은 버튼 오브젝트에 BindEvent를 통해 터치 이벤트를 구현하는 과정에서 UI_EventHandler 컴포넌트에서 상속받았던 IDargHandler 였다 Drag 기능을 쓰지 않음에도 해당 컴포넌트에 IDragHandler가 들어가 있어 버튼 오브젝트가 DragEvent를 가로챈 것이다 public class UI_EventHandler : MonoBehaviour, IPointerClickHandler, IDragHandler 그냥 IDragHanlder를 상속받는 부분을 지우고, 핸들러 관련된 코드를 지워주면 정상적으로 버튼 부분을 드래그 해도 전체 슬라이더가 스크롤 된다 만일 한 게임 내에..

[Unity] Sprite가 UI 이미지 위에 보이게 하기

일반적으로 Sprite들은 canvas 위에 올라간 UI의 뒤에 보이게 되는데, 이를 UI 앞으로 보이게 하고 싶었다 우선 Main Camera 외에 UI_Camera를 만들어 준 다음 위와 같이 각 카메라 설정을 해 주면 된다 체크해야 하는 부분은 Main Camera Clear Flags = Don't Clear 또는 Depth Only Culling Mask = Default Depth (UI Camera의 Depth보다 숫자가 높으면 된다) UI Camera Culling Mask = UI Depth 사용할 UI의 Layer는 UI로 설정되어 있어야 한다 그리고 Canvas 컴포넌트에서 Render Mode를 Screen Space - Camera로 변경해 준 다음, UI_Camera를 Rende..

[CS0104] 'Image'은(는) 'Microsoft.Unity.VisualStudio.Editor.Image' 및 'UnityEngine.UI.Image' 사이에 모호한 참조입니다.

'Image'은(는) 'UnityEngine.UI.Image' 및 'UnityEngine.UIElements.Image' 사이에 모호한 참조입니다. Image를 사용하는데 위와 같은 에러 메시지가 떴다 using Image = UnityEngine.UI.Image; using 문으로 Image를 UI.Image로 지정해주었더니 일단 오류가 해결되긴 하였다 +) Bind() 이런 식으로 함수를 사용할 때 에러가 났었음 UI Manager를 따로 만들어서 사용하고 있었으므로 BindImage 등의 함수를 따로 만들어 해당 함수에서 타입을 지정해줄 수 있게끔 변경해주었다

[Unity] SerializeField/public 선언해둔 변수 인스펙터 창 초기화

SerializeField로 선언해 둔 Theme에 코드 상에서 새로운 Element를 추가해도 제대로 반영이 되질 않았음... 인스펙터 창에서 한 번 값을 변경하면 코드에서 수정해도 반영이 안 된다고 한다 간단하게는 그냥 스크립트에 우클릭 > Reset 해주면 적용이 된다 Game Manager의 경우 프리팹으로 만들어뒀기 때문에 프리팹에 들어가서 초기화시켜주면 된다

[Unity] UI 클릭 제외하기

if (Input.GetTouch(0).phase == TouchPhase.Began) { if (EventSystem.current.IsPointerOverGameObject(0) { return; } SceneManager.LoadScene("Game"); } 첫번째 터치가 eventsystem 위(UI 위)에 있으면 return 함으로써 UI 터치 시 Game이 시작되지 않도록 할 수 있다 IsPointerOverGameObject는 int 파라미터가 필요한데, PC나 유니티 상에서의 터치는 -1, 휴대폰 상에서의 터치는 0으로 처리한다