도리의 Tech to Art

고정 헤더 영역

글 제목

메뉴 레이어

도리의 Tech to Art

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (148)
    • 개발기록 (127)
      • Unity 유니티 (17)
      • Computer Science (14)
      • 수학 (4)
      • 자료구조 & 알고리즘 (79)
      • 개발스터디 (10)
      • 산업·기술 동향 (3)
    • 디자인스터디 (17)
      • Pixar In a Box (4)
      • 블렌더 (13)
      • 디자인올인원 100일 챌린지 (0)
    • 감상노트 (0)
      • 현장 후기 (0)
    • 일상기록 (4)

검색 레이어

도리의 Tech to Art

검색 영역

컨텐츠 검색

분류 전체보기

  • 벡터 내적 활용 : 몬스터가 캐릭터 시야에 있는지 확인하기(Field of View)

    2026.01.03 by 도리(Dory)

  • [C# 이해하기] 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)

    2026.01.03 by 도리(Dory)

  • [C# 이해하기] 값형식(Value Type)과 참조 형식(Reference Type)

    2026.01.03 by 도리(Dory)

  • [2D-Platformer] 3. 점프 구현하기 (Jump)

    2025.12.27 by 도리(Dory)

  • [2D Platformer] 2. 사다리 로직 구현 (Climbing Ladder)

    2025.12.26 by 도리(Dory)

  • [2D Platformer] 1. START & 좌우 이동 구현

    2025.12.22 by 도리(Dory)

  • 비트 연산으로 이해하는 2의 거듭제곱 - Math.Pow 대신 1 << n을 사용하는 이유

    2025.12.12 by 도리(Dory)

  • LeetCode 136. SingleNumber — XOR 연산 응용

    2025.12.11 by 도리(Dory)

벡터 내적 활용 : 몬스터가 캐릭터 시야에 있는지 확인하기(Field of View)

게임에서 캐릭터(또는 카메라)가 어떤 방향을 보고 있을 때, 특정 대상이 내가 보는 방향의 앞쪽 시야(FOV, Field of View) 안에 들어오는지 판단해야 하는 경우가 많습니다. 예를 들면: 적이 내 시야 안에 들어오면 경고 UI 띄우기NPC가 플레이어를 “봤는지” 판정하기자동 조준에서 “가장 내 정면에 가까운 대상” 찾기 이때 가장 간단하고 빠르게 쓰는 방법이 벡터 내적(Dot product) 입니다. 핵심 아이디어: “각도” 대신 “코사인”을 비교한다 1) 두 방향 벡터를 준비한다f: 내가 바라보는 방향(Forward)d: 나에서 대상까지의 방향(Direction to target) 예시로는 보통 이렇게 만듭니다:f = (내 forward 방향)d = (대상 위치 - 내 위치) 2) 둘..

개발기록/Unity 유니티 2026. 1. 3. 14:33

[C# 이해하기] 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)

“복사”라고 하면 보통 “완전히 똑같은 걸 하나 더 만든다”를 떠올립니다.하지만 C#에서 복사는 생각보다 단순하지 않습니다. 왜냐하면 객체 안에 또 다른 객체(참조형)가 들어있을 수 있기 때문입니다. 그래서 복사에는 크게 두 가지가 있습니다. 얕은 복사(Shallow Copy): 겉은 새로 만들지만, 안쪽 참조는 그대로 공유깊은 복사(Deep Copy): 안쪽 참조까지 새로 만들어 완전히 독립 1) 먼저, “복사 문제”가 왜 생기나? 값 형식(int, float 등)은 복사하면 그냥 값이 복사되니 직관적입니다.문제는 참조 형식(class, 배열, List 등)입니다. 참조 형식의 객체는 “겉(객체)” 안에 필드들이 있고, 그 필드 중 일부가 또 다른 객체를 가리킬 수 있습니다. 즉, 이런 구조가 가능합..

개발기록/Computer Science 2026. 1. 3. 10:45

[C# 이해하기] 값형식(Value Type)과 참조 형식(Reference Type)

C#에서 변수를 만들 때, 우리는 보통 “변수에 값이 들어간다”고 생각합니다.그런데 자료형에 따라 변수 안에 들어가는 것이 두 가지로 갈립니다. 값 형식(Value Type): 변수에 데이터 그 자체가 들어간다참조 형식(Reference Type): 변수에 **데이터가 있는 곳을 가리키는 정보(참조)**가 들어간다 이 차이는 단순 개념이 아니라, 실제 코드에서 대입했을 때, 수정했을 때, 함수에 전달했을 때 동작을 완전히 바꿉니다. 1) “복사되는 게 다르다” 값 형식: 대입하면 “내용”이 복사된다int a = 10;int b = a; // a의 값(10)이 b로 복사됨b = 20;Console.WriteLine(a); // 10Console.WriteLine(b); // 20 b를 바꿔도 a는..

개발기록/Computer Science 2026. 1. 3. 10:36

[2D-Platformer] 3. 점프 구현하기 (Jump)

이번에는 점프 기능을 추가하였다. 점프는 Update에서 점프가 가능한 상태인지를 구분해주고FixedUpdate에서 실행해 주었다. void Update() { if (isGrounded && !isClimbing && Input.GetKeyDown(KeyCode.Space)) { jumpRequest = true; } } private void FixedUpdate() { // jump if (jumpRequest) { Jump(); jumpRequest = false; } } private void J..

개발기록/Unity 유니티 2025. 12. 27. 11:28

[2D Platformer] 2. 사다리 로직 구현 (Climbing Ladder)

오늘은 사다리 타기 로직을 구현해봤다. 체크해야할 것도 많고, 올라가는 것 뿐 아니라 다시 내려오는것까지 구현해야해서뭔가 은근 까다로웠다. 다음은 결과물이다.메이플 스토리 사다리 타는것 기준으로 구현했는데 뭔가 느낌이 괜찮은 것 같다. 사다리 로직 구현 결과물 1. 사다리가 옆에 있는지 체크 일단 사다리 로직을 구현할 때 내가 가장 먼저 생각해야하는 조건이 사다리가 옆에 있는가?? 였다. 그래서 이런식으로 Near 사다리 조건을 체크해줬다.사다리에 Ladder 스크립트를 넣어서 어떤 사다리를 타고 있는지도 가져와줬다. (나중에 필요할 것 같아서) private void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.na..

개발기록/Unity 유니티 2025. 12. 26. 14:11

[2D Platformer] 1. START & 좌우 이동 구현

다시 게임 만들기 프로젝트를 시작했다-!-!-! 👾👾 2D 플랫포머 게임플랫폼은 발판을 이야기하는데, 캐릭터가 발판을 밟고 다니면서 플레이하는 종류의 게임들을 말한다.요즘 메이플랜드를 많이 하기도 했고 2D 게임을 만들어보고 싶어서 이 장르를 택했다. 개발 규칙 게임 개발은 이전에도 해본 적이 있지만,이번에는 조금 더 체계적이고 효율적인 방식으로 해보고 싶었다. 그래서 GPT의 도움을 받아아주 단순한 규칙 두 가지를 정했다. 항상 시작 – 목표 – 플레이 – 끝이 있는 상태를 유지한다아트는 타인에게 보여줘도 될 정도로 플레이가 안정된 이후에 넣는다 완성도가 낮아도 상관없고,일단 게임처럼 켜서 플레이하고 끝낼 수 있는 상태를 유지하는 게 목표다. 꼭 구현해보고 싶은 기능 진짜 간단한데, 메이플 사..

개발기록/Unity 유니티 2025. 12. 22. 10:12

비트 연산으로 이해하는 2의 거듭제곱 - Math.Pow 대신 1 << n을 사용하는 이유

Math.Pow(2, n) 대신 1 을 쓰는 이유 알고리즘 문제를 풀다 보면 2ⁿ 형태의 값이 자주 등장한다.C#에서는 흔히 다음과 같이 작성하기 쉽다. int x = (int)Math.Pow(2, n); 하지만 이 경우, 더 적절한 표현은 다음이다. int x = 1 비트 관점에서의 의미 정수 1을 이진수로 표현하면 다음과 같다. 1 = 0001 왼쪽 시프트 연산()은 비트를 왼쪽으로 이동시키는 연산이다. 1 즉, 비트를 한 칸 이동할 때마다 값은 2배가 된다. 1 Math.Pow가 적절하지 않은 이유 - 부동소수점 연산 Math.Pow와 MathF.Pow는 각각 double, float 기반의 연산이다. Math.Pow(2, n) // doubleMathF.Pow(2, n) ..

개발기록/자료구조 & 알고리즘 2025. 12. 12. 14:33

LeetCode 136. SingleNumber — XOR 연산 응용

🔍 LeetCode 136번 Single Number — Dictionary 풀이 vs XOR 풀이 완전 비교 LeetCode 136번 Single Number 문제는 매우 유명한 비트 연산 문제다.“배열에서 단 한 번만 등장하는 숫자를 찾아라”라는 단순한 요구지만, 효율성과 공간 복잡도에 따라 풀이의 난이도가 크게 달라진다. 이 글에서는 직관적인 Dictionary 풀이와 가장 빠르고 메모리 효율이 좋은 XOR 정석 풀이를 비교하여, 어떤 방식이 더 좋은 선택인지 자세히 분석해보겠다. https://leetcode.com/problems/single-number/description/ 🧩 문제 요약 정수 배열 nums에서오직 한 번만 등장하는 숫자를 찾기.나머지 숫자는 모두 두 번씩 등장한다. ..

개발기록/자료구조 & 알고리즘 2025. 12. 11. 18:03

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 ··· 19
다음
TISTORY
도리의 Tech to Art © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바