반응형 게임 개발190 유니티) Transform.Translate 메서드 좌표계 적용법 우선 Transform.Translate 메서드는 Transform 계열 메서드로, 기존 위치에서 추가로 이동하는 기능을 가진다.예를 들어 (1,1)의 위치에 있는 오브젝트에 Translate(1,1)을 적용하면 (2,2)의 위치로 바뀐다. 연속적인 이동을 표현할 때 주로 선택 가능한 경우가 2가지 있는데,물리적으로 표현하는 방법과 Transform 계열로 표현하는 방법이 있다. Transform을 기반으로 하여 연속적 이동을 표현하고 싶다면 주로 Translate를 사용하게 되어 있다.이번 글에서는 이런 Translate 메서드의 좌표계 설정법에 대해서 알아보겠다. Vector3 vec = new Vector3(a,b,c);transform.Translate(vec);transform.Translate.. 게임 개발/유니티 2025. 1. 9. 유니티 셰이더) 반투명하게 만드는 법 내 블로그의 초기 인기글 중 하나는 반 투명 오브젝트를 만드는 법이었다. https://alpaca-code.tistory.com/22 유니티 오브젝트 투명도 조절, 반투명 오브젝트 만들기유니티에서 반투명한 오브젝트 등오브젝트의 투명도를 조절하고 싶을 때가 있다.그럴 때는,머티리얼 제작 후, 위쪽의 탭에서 Legacy Shaders/Transparent/Diffuse 로 들어가 주면 R(Red) : 빨강G(Green) :alpaca-code.tistory.com 그때는 이미 유니티에서 만들어 둔 세이더 중 하나를 골라서 쓰는 방법을 소개했는데이번엔 셰이더 그래프에서 직접 구현하는 방법을 소개하겠다. [Create] -> [Shdaer Graph] -> [URP] -> [Unlit Shader Graph].. 게임 개발/유니티 2025. 1. 5. 유니티 셰이더) Quad를 양면으로 보이게 하는 방법 이건 간단한 세팅이라 글로 적고 싶지는 않은데 Quad와 plane의 특징을뒤에서 보면 안 보이는 것으로 지칭할 만큼 널리 알려져 있는 사실이자뒤에서도 보이게 하고 싶은 사람이 많을 것 같아 간단히 남긴다. [Create] -> [Shdaer Graph] -> [URP] -> [Unlit Shader Graph]로 셰이더 그래프를 만들어주자.이후 원하는 머티리얼에 드래그, 드롭으로 적용시켜 주고 셰이더 그래프를 더블클릭하면아래와 같은 창이 나올 것이다. 물론 조금씩 다를 것이다. 여기서 중요한 건 우측에 있는 Graph Inspector의 세팅이다.(만약 보이지 않는다면 우측 상단 창에 있는 Graph Inspector 버튼을 눌러주자) 조금 내리다 보면 Render Face라는 항목이 보임을 알 수 있.. 게임 개발/유니티 2025. 1. 5. 유니티 셰이더) UV에 대해서 셰이더를 다루지 않더라도 유니티를 하다 보면 반드시 UV에 대해서 들어봤을 것이다.일단 분명히 머티리얼에 관련된 것인데... 좀 더 깊게 가면 셰이더에 관한 것인데.. 정확히는 몰랐다.이번 글에선 UV가 뭔지 설명해 보겠다. 간단히 말하자면 전개도를 만드는 것이다. 이런 사진이 많이 보일 것이다. 3D 물체에 2D 텍스쳐를 입히기 위한 과정이다.여기서 U와 V는 그래프의 X, Y와도 같다. 그래서 UVW, XYZ, RGB가 모두 같은 뜻이다.1. UV의 덧셈UV의 덧셈은 평행이동으로 말할 수 있다. U나 V값을 더하면 텍스쳐의 위치가 이동한다.뭔가 연결되는 텍스쳐를 만들었거나 흘러가는 느낌을 주고 싶다면 꾸준한 덧셈을코드나 노드로 표현하면 흘러가는 느낌을 줄 수 있을지 모른다.2. UV의 곱셈UV의 곱셈.. 게임 개발/유니티 2025. 1. 3. 유니티 셰이더) Lerp 이번 글에선 유니티 셰이더에서의 Lerp를 알아보겠습니다.셰이더가 아닌 Physics의 Lerp 등을 찾고 계신 분들도 보면 도움이 될 것입니다.원리가 똑같기 때문이죠. 아무튼 Lerp는 한국어로 "선형 보간"입니다. 선형은 "일정한 비율로"라고 표현 가능하고보간은 "적절히 합친다"는 말로 일정 부분 표현이 가능합니다. 그니까 종합하면 일정합 비율로 적절히 합치는 과정입니다. 물론 합치려면 두 가지요소가 있어야 합치거나 말거나 할 수 있겠죠. 예시를 들어봅시다. 만약에 0이랑 1이 있는데 Lerp를 시키려고 합니다.여기서 비율은 1:1이라고 하면 0.5가 나오게 되는 것입니다.이제 셰이더 화면으로 들어가 봅시다. Lerp는 이렇게 생겼습니다. A와 B가 합칠 대상, T가 비율이라고 생각하시면 편합니다.뭐.. 게임 개발/유니티 2025. 1. 2. 유니티 셰이더) 텍스쳐 흑백 및 채도 조절 - Saturation 텍스쳐를 흑백 사진으로 만들고 싶거나 채도를 진하게, 혹은 연하게 바꾸고 싶다면Saturation을 이용할 수 있다. 사전상 뜻 또한 "채도"이다. 대충 이렇게 생겼다. In에는 Vec3 짜리 텍스쳐가 들어가고, Saturation 부분에1차원 값이 들어간다. 보통 float를 사용하지 않을까 싶다. 아무튼 저 값을 0으로 하면 흑백 사진이 되고, 1로 하면 원래 사진이 나온다.물론 제한은 없어서 색이 바래게 하거나 지나치게 진하게 표현도 가능하다.예시로 사진을 보여주겠다. 위 사진은 Saturation 값을 0으로 설정한 사진이다. 흑백 사진이 되었음을 알 수 있다.물론 흑백은 원리상으로 (R+G+B)/3이라는 식을 노드를 통해 만들어도 표현이 가능하긴 하다. 이건 Saturation 값을 1로 설정한.. 게임 개발/유니티 2025. 1. 2. 유니티 셰이더) 텍스쳐 출력하는 법 이번 글에선 셰이더 그래프로 텍스쳐 출력 기능을 만들어보도록 하겠다.우선 Create메뉴에서 Unlit Shader Graph를 만들어주고 더블클릭해서 들어가 주자. 구조는 이렇다. 텍스쳐를 빠르게 바꿀 수 있도록 변수(프로퍼티)로 만들었고 Sample Texture 2D의Texture에 연결해 주면 된다. [Convert to] -> [property]로 빠르게 변수화시킬 수 있다. UV도 연결해 주면 도움이 될 것이다. 그리고 메인 기능은 Sample Texture 2D에서 담당한다.저기서 Texture와 UV를 합쳐 RGB로 내보내주는 기능을 담당하기에 그대로 연결하면 된다.물론 Fragment의 Base Color는 Vector3라서 alpha값 까지는 연동이 안되지만 말이다. 타일링을 하고 싶다.. 게임 개발/유니티 2025. 1. 1. C# 코드 생략 기법 - 메서드 체이닝(Method Chaining) 메서드 체이닝이란 한 객체를 대상으로 실행되는 여러 메서드 코드에서첫 줄에만 객체를 적고 아래로는 코드를 생략하여 같은 객체에서 실행만 달리할 수 있는 기법이다.설명만 들으면 이해가 안 갈 것 같다. 코드로 설명하겠다.class Program{ static void Main(string[] args) { Builder builder = new Builder(); string result = builder.Append("Hello, ") .Append("World!") .Build(); Console.WriteLine(result); // 출력: Hel.. 게임 개발/C# 2024. 12. 11. 유니티) 셰이더와 변수(프로퍼티) 연결하기 https://alpaca-code.tistory.com/253 (앞선 글) 유니티) 셰이더 변수(프로퍼티) 만들기아무 셰이더나 머티리얼에 적용시켜 보면 Aperture, Cube, Yaw, Fuzz 같은 변수들이 있다.이러한 변수들의 값을 기반으로 재질의 색상이나 반짝임, 반사 정도 등 시각적인 걸 변화시킨다. 이번 글에서alpaca-code.tistory.com 앞선 글에서 변수(프로퍼티)를 만드는 과정을 소개했었다.명도와 채도 등을 예시로 그런 변수를 실제 값에 연결만 해준다면우리가 흔히 머티리얼에서 재질의 느낌을 조작하는 역할을 수행할 수 있다고 언급했다.이번 글에서는 그 기능을 재현해보고자 한다. 셰이더를 만들면 이런 모습일 것이다.이전 글에서는 예시로 Float를 만들었지만 이번에는 색상 조절.. 게임 개발/유니티 2024. 12. 10. 유니티) 셰이더 변수(프로퍼티) 만들기 아무 셰이더나 머티리얼에 적용시켜 보면 Aperture, Cube, Yaw, Fuzz 같은 변수들이 있다.이러한 변수들의 값을 기반으로 재질의 색상이나 반짝임, 반사 정도 등 시각적인 걸 변화시킨다. 이번 글에서는 기초적으로 셰이더에서 이런 변수들을 만드는 방법에 대해서 설명하겠다.우선 머티리얼에 셰이더를 적용시킬 수 있다는 것을 알아야 하고,물체의 재질을 변화시키는 것은 결국 머티리얼의 역할이다. 즉, 머티리얼이 셰이더보다 위에 있는 개념이다.따라서 머티리얼과 셰이더를 하나씩 만들어주자. (Project 탭에서 Create -> Shader, Material) 아무튼 만들면 이런 아이콘으로 표시가 된다. 머티리얼은 익숙해서 많이들 알 것 같지만셰이더의 기본 아이콘은 저렇게 생겼다. 셰이더를 머티리얼에 .. 게임 개발/유니티 2024. 12. 10. C# Generic의 기능, 사용법, 예시 이번에는 말로만 듣던 C#의 제네릭에 관해서 이야기해볼까 한다.우선 제네릭은 타입과 상관없이 여러 상황에 같은 클래스, 메서드를 적용시키기 위한 편리한 방법 중 하나이다.예시를 보는 것이 이해에 도움이 될 것이다.1. 제네릭 클래스using System;public class GenericList{ private T[] items; private int count; public GenericList(int size) { items = new T[size]; count = 0; } public void Add(T item) { if (count = 0 && index 인스턴스 생성 GenericList intList .. 게임 개발/C# 2024. 11. 25. C# Interface의 기능, 사용법 오랜만에 순수 C#의 기능 중 하나인 Interface에 대해서 설명해 보겠다.Interface의 거시적인 의미를 설명하자면 여러 클래스에서 같은 메서드를공유하고 싶을 때, 이를 효율적으로 관리할 수 있게 해주는 기능을 가진다.이런 건 설명만으로 이해하기 불가능하다. 의미만 알고 예시를 보자.public interface IVehicle{ void Start(); void Stop();}public class Car : IVehicle{ public void Start() { Console.WriteLine("Car started."); } public void Stop() { Console.WriteLine("Car stopped."); .. 게임 개발/C# 2024. 11. 24. 이전 1 2 3 4 ··· 16 다음 💲 추천 글 반응형