[Unity] 모바일 터치 스와이프 드래그 상하좌우 처리 기능 간단한 C# 스크립트
·
Unity
# 1. 코드 작성using UnityEngine; public class SwipeInput : MonoBehaviour{ private Vector2 _fingerDownPosition; private Vector2 _fingerUpPosition; private bool _isSwiping = false; public float SwipeThreshold = 50f; void Update() { // 터치 입력의 개수를 확인합니다. if (Input.touchCount > 0) { // 첫 번째 터치 입력을 가져옵니다. Touch touch = Input.GetTouch(0); ..
[Unity - Material] Canvas UI 내 배치된 Image에 Emission 효과 적용하기
·
Unity
# 0. 프롤로그유니티 Canvas에서 추가한 Image에 Emission 효과를 배치하여 더욱 화려한 시각적 효과를 제공하고 싶은 생각이 들었다.2023 버전에서는 Canvas Shader가 제공되어, 간단한 shader graph로 Emission 효과를 적용할 수 있다고 하였으나, 현재 기준으로  LTS 버전이 아니기 때문에 호환성 및 안정성 문제가 발생할 수 있다고 판단되어 버전을 변경하지 못했다.2022 버전에서도 Canvas UI에 Emission 효과를 추가할 수는 없을까 찾아보던 중, github에서 해당 자료를 찾을 수 있었다.적용 방법은 상당히 간단했다.# 1. Emission 효과 적용 방법1. URP(Universal Render Pipeline) 프로젝트로 변경/생성한다. 2. S..
[Unity - Material] 여러 개의 머테리얼 색상을 일괄적으로 변경하는 방법
·
Unity
# 0. 프롤로그스파인 공부 겸 토이 프로젝트를 진행하게 되었는데, 2D 모델에 적용된 머테리얼의 색상이 너무 어둡게 설정되어 있었다.1개 혹은 몇십개의 머테리얼이라면 손으로 하나씩 빠르게 수정하면 되겠다고 생각하였지만, 변경이 필요한 머테리얼의 개수가 수백개에 달하는 것을 알게 되었다.대략 몇분 간 고민하면서 "머테리얼을 스크립트에 드래그로 등록하고 코드로 일괄적으로 바꾸면 되지 않을까?"라는 생각이 퍼뜩 떠올랐고 바로 실행으로 옮겼다.# 1. 다수의 머테리얼 색상 값을 변경하는 스크립트 소개코드 작성 후, 인스펙터를 아래의 사진과 동일하게 세팅하고 Unity Editor 상에서 Play를 하면 등록한 Material들이 NewColor 값으로 모두 변경된다. # 1-1. 적용 방법1. 처리를 위해 G..
[Unity - Material] 머테리얼을 복사해서 씬 전환 효과 구현하기
·
Unity
상용 게임에서는 화면 전환 셰이더 효과를 어떻게 표현하는 걸까?우선 생각나는 방식은 셰이더 그래프를 활용하여 머테리얼 정보들을 변경하여 표현하는 방법이 떠올랐다. 구현 자체는 문제가 없었으나, 사용하는데 있어 사소한 문제점이 발생되었다.필자의 경우 스크립트에서 머테리얼 내 프로퍼티 값 자체를 변경하였더니, 머테리얼 인스턴스 자체의 프로퍼티 값이 변경되어 값을 다시 리셋해줘야 하는 현상이 발생했다. 열심히 정보들을 찾아본 경과 Unity에서는 Renderer.material과 Renderer.sharedMaterial의 차이를 이해하는 것이 중요하다고 한다.Renderer.material: 이 프로퍼티는 Material의 복사본을 생성하여 사용한다. 이렇게 하면 개별 객체의 Material을 독립적으로 변..
[Unity - Shader Graph] UV 텍스처의 U좌표를 -방향으로 반복 출력하게 만들기
·
Unity
1. 목표Sprite 이미지의 UV좌표만을 이동시켜 움직이는 이미지를 만들어 보자. 2. 결과물 3. 개념 학습 - 셰이더 그래프 노드설명에 앞서, 유니티의 셰이더 그래프를 사용하기 위해서는 유니티 셰이더 그래프에서 지원하는 노드의 기능들에 대해 알아야 합니다. 아래는 유니티 공식 홈페이지의 셰이더 그래프 기능에 대한 소개 내용이 기재되어 있습니다.https://docs.unity3d.com/kr/Packages/com.unity.shadergraph@10.8/manual/First-Shader-Graph.html 첫 번째 셰이더 그래프 | Shader Graph | 10.8.0첫 번째 셰이더 그래프 시작하기 전에 프로젝트가 올바르게 설정되고 그래프가 올바르게 로드되는지 확인해야 합니다. 자세한 내용은 ..
게임 디자인 패턴 - 개요
·
Unity
디자인 패턴은 하위 클래스 객체를 상위 클래스 객체에 대입할 수 있다는 대전제 하에서 디자인 패턴이 시작된다.본격적으로 시작하기 앞서, 부모 클래스와 자식 클래스를 정의해보자.// [부모 클래스]public class Super{ public void Execute1() { Debug.Log($"Super Execute1"); } public virtual void Execute2() { Debug.Log($"Super Execute2"); }}// [부모를 상속받은 자식 클래스]public class Sub : Super{ public void Execute1() { Debug.Log($"Sub Execute1"); ..
[Unity] 한글 주석 인코딩 깨짐 해결하기
·
Unity
유니티에서 IDE를 Visual Studio로 설정 및 C# 스크립트 내 한글 주석이 있는 경우Inspector View 창에서 스크립트를 미리 볼 때 한글 부분이 깨지는 현상이 발생합니다.Unity는 주로 UTF-8 인코딩을 사용하므로 다른 인코딩이 적용된 경우에는 깨질 수 있습니다. 해결하기 위해서는 .editorconfig 파일을 생성하여 포맷팅 규칙을 UTF-8로 설정해주면 됩니다..editorconfig 파일을 생성 방법은 다음과 같습니다. 1) 메모장 실행 후, 하단 코드 복사하여 붙여 넣기[*]charset = utf-8-bom[*.xml]indent_style = space 2) 파일명은 .editorconfig, 파일 형식은 모든 파일로 설정 후, 유니티 프로젝트 내 .sln 파일이 있는..