전체 글

전체 글

    다이얼로그 구현하기

    #regionusing System;using System.Collections;using TMPro;using UnityEngine;using UnityEngine.UI;#endregionpublic class DialogSystem : MonoBehaviour{ [SerializeField] Speaker[] speakers; [SerializeField] DialogData[] dialogs; [SerializeField] bool isAutoStart = true; bool isFirst = true; int currentDialogIndex = -1; int currentSpeakerIndex; const float TypingSpeed = 0.1f; bool isTypingEffect; boo..

    생성자 체이닝 (Constructor Chaining)

    객체 생성은 객체 지향 프로그래밍에서 중요한 개념입니다. 객체를 생성할 때는 생성자를 사용하여 객체의 초기 상태를 설정합니다. 생성자 체이닝은 여러 개의 생성자를 연결하여 객체를 생성하는 기술입니다. 이를 통해 객체 생성 과정을 간결하고 효율적으로 만들 수 있으며, 객체 초기화 코드를 명확하게 구성할 수 있습니다. 1. 생성자 체이닝이란?C#에서 생성자 체이닝은 여러 개의 생성자를 연결하여 객체를 생성하는 기술입니다. 각 생성자는 this 키워드를 사용하여 다음 생성자를 호출합니다. 이를 통해 객체 생성 과정을 간결하고 효율적으로 만들 수 있으며, 객체 초기화 코드를 명확하게 구성할 수 있습니다.class Person{ public Person(string name) { Name ..

    DoTween의 Tween과 Sequence

    TweenTween은 단일 대상 객체에 대한 애니메이션을 정의하는 데 사용됩니다. 객체의 위치, 회전, 크기, 색상 등 다양한 속성을 원하는 값으로 부드럽게 변환시키는 데 적합합니다. Tween 주요 기능타겟 지정: 애니메이션을 적용할 대상 객체 지정속성 변경: 이동, 회전, 크기 조정, 색상 변경 등 다양한 속성 변환Ease 함수: 부드러운 움직임을 위한 Ease 함수 적용지속 시간: 애니메이션 실행 시간 설정지연 시간: 애니메이션 시작 지연 시간 설정루프: 애니메이션 반복 횟수 설정콜백: 애니메이션 시작, 종료, 진행 상황에 따라 이벤트 발생using DG.Tweening;using UnityEngine;public class MoveObject : MonoBehaviour{ void Start() ..

    Unity 애니메이션을 간편하게 만들어주는 DoTween

    Unity에서 애니메이션을 만들 때 직접 코드를 작성하는 방식은 번거롭고 시간이 많이 소요될 수 있습니다. 이러한 문제를 해결하고 애니메이션 제작 과정을 간편하게 만들어주는 유용한 에셋이 바로 DoTween입니다. DoTweenDoTween은 Unity에서 사용할 수 있는 애니메이션 에셋으로, 다양한 기능을 제공하여 객체의 위치, 회전, 크기, 색상 등을 부드럽게 변환하는 애니메이션을 쉽게 만들 수 있도록 도와줍니다. 직관적인 API와 다양한 예시를 통해 초보자도 쉽게 사용할 수 있으며, 전문가들은 더욱 복잡한 애니메이션을 만들 수 있습니다. 주요 특징간편한 사용 : 직관적인 API를 제공하여 코드 작성 없이도 애니메이션을 만들 수 있습니다.다양한 애니메이션 유형 : 이동, 회전, 크기 조정, 색상 변경..

    Unity 코드 문서화 : summary 태그 활용

    유니티에서 코드를 작성하는 과정에서 코드의 기능과 목적을 명확하게 설명하는 것은 매우 중요합니다. 코드를 이해하기 쉽고 유지 관리하기 쉬운 방식으로 주석을 달아야 합니다. 특히, 대규모 프로젝트의 경우 코드의 복잡성이 증가하면서 코드 문서화의 중요성이 더욱 부각됩니다. summary 태그란?summary 태그는 유니티에서 코드 블록의 요약 정보를 제공하는 데 사용되는 특수 주석 태그입니다. 이 태그는 코드 블록의 상단에 위치하며, 코드의 기능, 목적, 사용 방법 등을 간략하게 설명하는 역할을 합니다.핵심 특징:간결성: 코드 블록의 핵심 정보를 요약하여 코드 이해도를 높여줍니다.명확성: 코드의 목적과 기능을 명확하게 설명하여 코드 유지 관리를 용이하게 합니다.IntelliSense 지원: 유니티 에디터의 ..

    JavaFestival23번 문제 C#으로 풀어보기

    더보기 같이 일하시는 분이 풀어보셨던 알고리즘 문제를 보면서 20줄이 넘는 코드를 반절 이상으로 줄여 볼 수 있다고 당당하게 말한 후 문제를 공유 받아 풀어보았는데, 코드를 작성하고 문제를 보니 배열을 사용하지 않아서 결과적으로 틀렸네요 문제 : 정수 N을 입력 받아 N * N 배열에 다음과 같이 숫자를 저장하고 출력하시오. int n = int.Parse(Console.ReadLine()); for (int colum = 0; colum 0; i--) Console.Wri..

    뷰포트 영역 안에 있는지 검사하는 방법

    게임 개발에서 랜덤하게 생성된 좌표가 화면 뷰포트 영역 안에 있는지 확인하는 것은 흔한 작업입니다. 예를 들어, 몬스터 등장 위치 설정, 아이템 스폰 위치 결정, 배경 효과 표시 위치 선정 등 다양한 상황에서 활용될 수 있습니다. 이 글에서는 IsInsideViewport 메서드를 사용하여 랜덤 좌표가 뷰포트 영역 안에 있는지 검사하는 방법을 소개하고, 실제 적용 예시, 추가 고려 사항, 활용 팁 등을 자세하게 설명합니다. 코드 public static bool IsInsideViewport(Vector3 point) { Vector3 viewportPosition = Camera.main.WorldToViewportPoint(point); return viewportPosition.x is >= 0 a..

    Unity Shader : UV 매핑

    이 글에서는 텍스쳐를 자유롭게 조작하고 다양한 시각 효과를 만들 수 있는 UV 매핑 심화 개념을 다룹니다. 텍스쳐 타일링, 오프셋, 애니메이션, 불 쉐이더 제작 과정을 예시와 함께 자세하게 설명하며, 텍스쳐 래핑 모드, 셰이더 변수, 시간 기반 애니메이션 등 관련 개념들을 심층적으로 이해할 수 있도록 돕습니다. 텍스쳐 타일링 텍스쳐 타일링은 텍스쳐를 반복적으로 표현하여 더 넓은 영역에 적용하는 기술입니다. 벽돌, 타일, 천, 바닥 등 여러 표면에 텍스쳐를 자연스럽게 적용하는 데 사용됩니다. 예시 벽돌 벽: 벽돌 텍스쳐를 타일링하여 벽 전체를 채웁니다. 바닥 타일: 타일 텍스쳐를 타일링하여 바닥 전체를 채웁니다. 천: 구름 텍스쳐를 타일링하여 하늘을 표현합니다. 옷: 천 텍스쳐를 타일링하여 옷감을 표현합니..