JavaFestival23번 문제 C#으로 풀어보기
·
BaekJoon
더보기 같이 일하시는 분이 풀어보셨던 알고리즘 문제를 보면서 20줄이 넘는 코드를 반절 이상으로 줄여 볼 수 있다고 당당하게 말한 후 문제를 공유 받아 풀어보았는데, 코드를 작성하고 문제를 보니 배열을 사용하지 않아서 결과적으로 틀렸네요 문제 : 정수 N을 입력 받아 N * N 배열에 다음과 같이 숫자를 저장하고 출력하시오. int n = int.Parse(Console.ReadLine()); for (int colum = 0; colum 0; i--) Console.Wri..
뷰포트 영역 안에 있는지 검사하는 방법
·
Unity/Tip
게임 개발에서 랜덤하게 생성된 좌표가 화면 뷰포트 영역 안에 있는지 확인하는 것은 흔한 작업입니다. 예를 들어, 몬스터 등장 위치 설정, 아이템 스폰 위치 결정, 배경 효과 표시 위치 선정 등 다양한 상황에서 활용될 수 있습니다. 이 글에서는 IsInsideViewport 메서드를 사용하여 랜덤 좌표가 뷰포트 영역 안에 있는지 검사하는 방법을 소개하고, 실제 적용 예시, 추가 고려 사항, 활용 팁 등을 자세하게 설명합니다. 코드 public static bool IsInsideViewport(Vector3 point) { Vector3 viewportPosition = Camera.main.WorldToViewportPoint(point); return viewportPosition.x is >= 0 a..
Unity Shader : UV 매핑
·
Unity
이 글에서는 텍스쳐를 자유롭게 조작하고 다양한 시각 효과를 만들 수 있는 UV 매핑 심화 개념을 다룹니다. 텍스쳐 타일링, 오프셋, 애니메이션, 불 쉐이더 제작 과정을 예시와 함께 자세하게 설명하며,  텍스쳐 래핑 모드, 셰이더 변수, 시간 기반 애니메이션 등 관련 개념들을 심층적으로 이해할 수 있도록 돕습니다. 텍스쳐 타일링텍스쳐 타일링은 텍스쳐를 반복적으로 표현하여 더 넓은 영역에 적용하는 기술입니다. 벽돌, 타일, 천, 바닥 등 여러 표면에 텍스쳐를 자연스럽게 적용하는 데 사용됩니다. 예시벽돌 벽: 벽돌 텍스쳐를 타일링하여 벽 전체를 채웁니다.바닥 타일: 타일 텍스쳐를 타일링하여 바닥 전체를 채웁니다.천: 구름 텍스쳐를 타일링하여 하늘을 표현합니다.옷: 천 텍스쳐를 타일링하여 옷감을 표현합니다.코드..
Unity Shader : 텍스쳐 입히기와 UV 좌표 활용
·
Unity
유니티 쉐이더는 게임 개발에서 다양한 시각 효과를 구현하는 데 필수적인 요소입니다. 이 글에서는 초보자부터 중급자까지 이해하기 쉽게 쉐이더의 기본 개념과 활용 방법을 설명하고자 합니다. 특히 RGB 슬라이더 제작, 텍스쳐 입히기, UV 좌표 활용, Lerp 함수 활용에 초점을 맞추어 심층적으로 다루겠습니다. RGB 슬라이더 제작(1) 프로퍼티스 설정먼저 프로퍼티스(Properties)에서 인터페이스를 만들고 Range 속성을 사용하여 슬라이더를 생성합니다. (2) SubShader에서 변수 선언SubShader에서 'float _Red', 'float _Green', 'float _Blue'와 같이 변수를 선언합니다.변수 선언은 텍스쳐 입히기와 같은 다른 기능을 사용하기 위한 필수적인 과정입니다.(3) ..
Unity Light : 조명
·
Unity
개요 유니티는 다양한 조명 유형을 제공하여 게임 개발자들이 현실적인 조명 효과를 구현할 수 있도록 지원합니다. 이 글에서는 가장 일반적으로 사용되는 4가지 조명 유형인 Spot, Directional, Point, Area에 대해 자세히 설명하고 각 유형의 특징, 장단점, 활용 예시 등을 비교 분석합니다. 조명 유형 비교 유형 특징 장점 단점 활용 예시 Spot 원뿔형 조명 - 집중적인 조명 효과 - 특정 영역 강조 - 범위 제한 - 경계선 명확 - 손전등, 조명, 스포트라이트 Directional 태양광과 유사한 평행 조명 - 넓은 범위 조명 - 그림자 효과 자연스러움 - 방향 조절 제약 - 면적 조명 어려움 - 실외 환경, 햇빛, 달빛 Point 모든 방향으로 빛 발산 - 자연스러운 조명 효과 - 다..
Unity Shader : 코드 분석
·
Unity
이전 글에서는 Unity 쉐이더의 기본 개념과 Surface 쉐이더의 구성 요소를 살펴보았습니다. 이번 글에서는 쉐이더 코드를 직접 분석하며 쉐이더 작동 방식을 이해하는 데 집중할 것입니다. 1. CGPROGRAM & ENDCG 쉐이더 코드는 CGPROGRAM과 ENDCG 키워드 사이에 작성됩니다. 이는 Cg 또는 HLSL과 같은 프로그래밍 언어를 사용하여 쉐이더를 구현한다는 것을 의미합니다. Cg는 NVIDIA에서 개발한 고수준 쉐이더 언어이며, HLSL은 Microsoft에서 개발한 고수준 쉐이더 언어입니다. Unity는 Cg와 HLSL 모두를 지원하며, 쉐이더 모델 3.0 이상을 사용할 수 있습니다. 2. #pragma #pragma는 쉐이더 컴파일러에게 특정 지침을 제공하는 키워드입니다. 컴파일러..
Unity Shader : 기초
·
Unity
Unity 쉐이더는 게임 오브젝트의 렌더링 방식을 제어하는 코드입니다. 3D 그래픽에서 쉐이더는 매우 중요한 역할을 하며, 텍스처, 색상, 조명 등을 사용하여 사실적인 이미지를 만들 수 있도록 합니다. 1. 쉐이더 정의 쉐이더는 Cg 또는 HLSL과 같은 프로그래밍 언어로 작성된 코드이며, 꼭지점 셰이더와 프래그먼트 셰이더로 구성됩니다. 꼭지점 셰이더: 3D 공간에서 꼭지점의 위치를 변환하고 조명 계산을 수행합니다. 프래그먼트 셰이더: 각 픽셀의 색상을 계산합니다. 2. 쉐이더 종류 Unity에는 다양한 종류의 쉐이더가 있으며, 일반적으로 다음과 같이 분류됩니다. Standard Surface Shader: 대부분의 오브젝트에 사용되는 기본 쉐이더입니다. Lit Shader: 조명 계산을 수행하는 쉐이더..
RigidbodyConstraints : 회전과 위치 제어
·
Unity
유니티 RigidbodyConstraints는 리지드바디의 회전과 위치를 제어하는 데 사용되는 enum입니다. 각 옵션은 다음과 같은 의미를 가집니다. 회전 제어:FreezeRotationX: X축 회전을 동결합니다. (X축 회전 불가능)FreezeRotationY: Y축 회전을 동결합니다. (Y축 회전 불가능)FreezeRotationZ: Z축 회전을 동결합니다. (Z축 회전 불가능)위치 제어:FreezePositionX: X축 이동을 동결합니다. (X축 이동 불가능)FreezePositionY: Y축 이동을 동결합니다. (Y축 이동 불가능)FreezePositionZ: Z축 이동을 동결합니다. (Z축 이동 불가능)예시단일 제어 Rigidbody rigid = GetComponent();// X축 회전..