[Unity] 게임 개발(16)
-
[Unity] UniRx 공부
참고 원문 : 2022年現在におけるUniRxの使いみち UniRx와 async/await와 UniTask async/await, 이쪽은 간단하게 "편리하게 된 코루틴" 이라고 하는 인식으로 일단은 문제 없습니다. async/await 자체는 비동기 처리의 대기 처리를 간소하게 쓸 수 있도록 하기 위한, C#의 언어 기능입니다. (구조는 전혀 다르지만) async/await는 외형으로서는 Unity의 코루틴과 매우 비슷합니다. UniRx에서도 코루틴과의 조합은 편리했지만, async/await에서도 UniRx와 조합하면 그 편리성이 높아집니다. 특히 UniTask라는 라이브러리가 강력하며, 여기를 도입함으로써 Unity에서 async/await의 취급을 대폭 강화할 수 있습니다. (async/await와 ..
2023.08.04 -
[Unity] 특정 Component 삭제법.
Object Pooling을 고도화 하던 중 Type에 따라 Collider의 종류가 다르게 들어가야 하는 경우를 마주 하였다. 이때 이전에 들고 있던 Collider를 삭제 해주고 새로운 Collider를 넣어주기 위해서 Destroy문을 사용 중 특이점을 발견하였다. Destroy Component 코드. if (this.GetComponent() != null) { preCollider = this.GetComponent(); Destroy(preCollider); } 해당 Destroy문으로 특정 Component를 검색하여 삭제시켜주는 것이 일반적인 방법이다. 하지만 불규칙이 존재하였다. AddComponent 구문과 함께 사용할때 문제가 생겨났다. 문제 발생 코드. if (this.GetCom..
2022.07.18 -
[Unity] Unity 3d Shader 외곽선 처리 코드
유니티 쉐이더 외곽선 처리 코드 _Outline 조절을 통해 외곽선 처리 가능. Outlined Shader 코드 // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Outlined/Silhouetted Diffuse" { Properties { _Color ("Main Color", Color) = (0.5,0.5,0.5,1) _OutlineColor ("Outline Color", Color) = (0,0,0,1) _Outline ("Outline width", Range (0.0, 0.3)) = .005 _MainTex ("Base (RGB)", 2D) = "white" { } _Alpha..
2021.07.03 -
[Unity] 성능 비교 정리
# 캐싱 2ms ball.testTrigger = !ball.testTrigger; # GetComponent 362ms ballObj.GetComponent().testTrigger = !ballObj.GetComponent().testTrigger; # GetComponent 널체크 239ms Ball _ball = ballObj.GetComponent(); if (_ball != null) _ball.testTrigger = !_ball.testTrigger; # TryGetComponent 널체크 202ms if (ballObj.TryGetComponent(out Ball _ball)) _ball.testTrigger = !_ball.testTrigger; # Vector3.Distance 41m..
2021.05.31 -
[Unity] 모바일 2D 액션 게임 'PencilHero' 출시.
PlayStore(안드로이드) 주소: play.google.com/store/apps/details?id=com.Company.PencilHero PencilHero - Google Play 앱 'Pencil Hero'는 95.2Classics 팀에서 개발한 캐주얼 액션 게임입니다. 만화책 공간 속에서 펼쳐지는 액션을 통해 새로운 전투를 체험하실 수 있습니다! 기억을 잃은 펜슬 히어로의 연필로 다양한 장르 play.google.com AppStore(아이폰) 주소: apps.apple.com/kr/app/pencilhero/id1558794968 PencilHero 만화책 액션! 다양한 빌런! 색다른 게임! 'Pencil Hero'는 95.2Classics 팀에서 개발한 캐주얼 액션 게임입니다. 만..
2021.04.06 -
[Unity] ios 빌드 시 UI 터치 제한 기능
UI 만들다보면 UI와 게임씬에 반응이 같이 될때가 있다. 그래서 UI를 터치할때는 인게임을 제외하고 싶을 때가 있다. 그 때 사용하는 함수 EventSystem.current.IsPointerOverGameObject() == false 가 있다. 이 함수가 유니티 에디터 상에선 잘 작동했지만 ios 모바일 빌드를 진행하니 기능이 먹통이 되었다. 찾아보니 EventSystem.current.IsPointerOverGameObject() 함수가 파라메터(int)를 받는다. 따라서, int pointerID; #if UNITY_EDITOR pointerID = -1; //PC나 유니티 상에서는 -1 #elif UNITY_IOS || UNITY_IPHONE pointerID = 0; // 휴대폰이나 이외에서..
2021.03.14