| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
- leetcode
- 코딩테스트
- 3d스터디
- 3d모델링
- 카드뉴스
- 단계별문제풀이
- 자바스크립트
- 비트연산
- CS
- c언어
- csharp
- boj
- 블렌더
- blender4.0
- 도넛튜토리얼
- AI
- 파이썬
- 3D그래픽
- cs기초
- 블렌더튜토리얼
- Photoshop
- level1
- Python
- blender
- 알고리즘
- 포토샵
- 단계별로 풀어보기
- 프로그래머스
- 블렌더도넛
- 백준
- Today
- Total
목록전체 글 (149)
슬로우도파민
유니티에서 시간 측정하기 1 에서 다룬 4가지 방법은 '게임이 켜져 있는 동안' 작동하는 유니티 엔진 내부의 시계라면,DateTime은 C#에서 제공하는 기능으로 '현실 세계의 실제 시계'를 사용하는 방식입니다. 모바일 게임, 특히 방치형 게임이나 소셜 게임에서는 이 System.DateTime 이 타이머 구현에 절대 빠질 수 없는 핵심입니다. 언제 DateTime을 타이머로 사용하나요?게임 내부 연산(Time.deltaTime)으로는 감당할 수 없는 장기적인 시간이나, 앱이 꺼져 있을 때도 흘러가야하는 시간을 측정할 때 쓰입니다.행동력(스태미나) 회복: "하트가 1개 차오르는데 5분 대기"건축물/업그레이드 타이머: "마을 회관 레벨업까지 24시간 소요"일일 보상 초기화: "매일 밤 12시에 출석체크 ..
1. Update()와 Time.deltaTime매 프레임마다 이전 프레임부터 현재 프레임까지 걸린 시간(Time.deltaTime)을 누적하거나 빼서 타이머를 만듭니다.화면에 남은 시간을 실시간으로 보여주는 UI(카운트다운)를 만들 때 가장 많이 사용됩니다. using UnityEngine;public class UpdateTimer : MonoBehaviour{ public float timeLeft = 10.0f; // 10초 카운트 다운 void Update() { if (timeLeft > 0) { timeLeft -= Time.deltaTime; // 매 프레임마다 시간을 뺌 // 예: timerText.text = M..
N 번째 시도이지만, 다시 한 번 시도합니다. 저녁으로 엄청 매운 국물 닭발 먹어서,지금 못할 게 없는 상태입니다.🔥🔥🔥🔥🔥 이번에도 예전에 시도했던 방식처럼, 시작 - 목적 - 끝이 있는 최소 단위의 버전을 먼저 구현해 놓고이걸 더 재밌게 더 재밌게 업그레이드 하는 방식으로 해볼 생각입니다. 사실 이 방식은 제가 일할 때도 자주 떠올리는 방식입니다. 이유는...저에게는 아주 작은 완벽주의자 성향이 있어서...뭐 디자인이나 연출 같은거에 빠지면 다음 단계로 잘 못넘어가더라구요.. 그래서 다른 분들께 보여줄 수 있는 최소 단위의 버전을 만드는 것을 먼저 목표로 하곤 합니다.'이 버전 다른 사람들한테 보여줄 수 있어?' 를작업 하면서 계속 스스로에게 묻는거죠. 이 질문을 계속 하다 보면폰트 사이..
네.저는 개발자입니다. AI가 과거(무려 1-2년 전) 개발의 많은 부분들을 감사하게도(ㅠㅠ?) 담당해주고 있어서저는 이제 조금씩 코드가 아닌 글도 써보려고 합니다. 절대 코드를 잘 못써서는 아닙니다.ㅎㅎㅎㅎ 아마도 앞으로 쓰게 될 글에는AI와 함께 급변하는 시대에서저와 같은 모든 청년들의 고민과 돌파구를 담은 내용들이 많을 것 같습니다. 일단 조금 더 제 소개를 하자면,저는 Unity 개발자로 3년 정도의 경력이 있고요.1년 넘게 원하지만 원하지 않는 백수 생활을 하다가현재는 게임 회사에 재직하고 있습니다. 22년 말에 OpenAI의 ChatGPT가 공개되고,몇년 있다가 희망퇴직을 통해 회사에서 정리(?)를 당했구요. 그간 겪었던 혼자만의 시간, 행복, 고통 모두 다글에서 함께 공유해볼 수 있..
보호되어 있는 글입니다.
게임에서 캐릭터(또는 카메라)가 어떤 방향을 보고 있을 때, 특정 대상이 내가 보는 방향의 앞쪽 시야(FOV, Field of View) 안에 들어오는지 판단해야 하는 경우가 많습니다. 예를 들면: 적이 내 시야 안에 들어오면 경고 UI 띄우기NPC가 플레이어를 “봤는지” 판정하기자동 조준에서 “가장 내 정면에 가까운 대상” 찾기 이때 가장 간단하고 빠르게 쓰는 방법이 벡터 내적(Dot product) 입니다. 핵심 아이디어: “각도” 대신 “코사인”을 비교한다 1) 두 방향 벡터를 준비한다f: 내가 바라보는 방향(Forward)d: 나에서 대상까지의 방향(Direction to target) 예시로는 보통 이렇게 만듭니다:f = (내 forward 방향)d = (대상 위치 - 내 위치) 2) 둘..
“복사”라고 하면 보통 “완전히 똑같은 걸 하나 더 만든다”를 떠올립니다.하지만 C#에서 복사는 생각보다 단순하지 않습니다. 왜냐하면 객체 안에 또 다른 객체(참조형)가 들어있을 수 있기 때문입니다. 그래서 복사에는 크게 두 가지가 있습니다. 얕은 복사(Shallow Copy): 겉은 새로 만들지만, 안쪽 참조는 그대로 공유깊은 복사(Deep Copy): 안쪽 참조까지 새로 만들어 완전히 독립 1) 먼저, “복사 문제”가 왜 생기나? 값 형식(int, float 등)은 복사하면 그냥 값이 복사되니 직관적입니다.문제는 참조 형식(class, 배열, List 등)입니다. 참조 형식의 객체는 “겉(객체)” 안에 필드들이 있고, 그 필드 중 일부가 또 다른 객체를 가리킬 수 있습니다. 즉, 이런 구조가 가능합..
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는..
