C#

Animation CurveEaseInOut 같은 커브를 지원하는 클래스이다.public AnimationCurve curve = AnimationCurve.Linear(0,0,1,1);Vector3 newPosition = Vector3.Lerp(itemBeginPOS, boxTransform.position, curve.Evaluate(t / duration));     Item Spawner아이템을 동적으로 생성하는 spawner를 만들어 보자.using System.Collections;using System.Collections.Generic;using UnityEngine;public class ItemSpawner : MonoBehaviour{ public GameObject itemP..
캐릭터 점프캐릭터의 점프 기능을 추가해 보자.우선, Space를 입력하여 동작할 수 있도록 입력 Action을 추가하자.private InputAction Jump_Input;void Start(){ ... Jump_Input = Input.actions["Jump"]; ...}이를, Update함수에서 입력을 감지해 점프가 실행되도록 하면 된다.추가로 Animation까지 적용해 보자.private bool IsGround = true;public bool Ground{ get => IsGround; set => IsGround = value;}void Update(){ Vector2 moveValue = Move_Input.ReadValue(); if (moveVal..
2D 애니메이션2D 게임에서 입력에 따라 캐릭터의 애니메이션을 적용하는 방법은 다음과 같다. 우선, 애니메이션을 적용할 2D 이미지를 준비한다.이후, Sprite Editor를 통해 다음과 같이 Slice 해주면 된다.자동으로 크기를 설정해도 되고 원하는 크기로 자를 수도 있다.Slice가 적용되면 다음과 같다.Slice가 완료되면 다음과 같이 분할된 스프라이트가 생성된다.캐릭터로 사용할 GameObject를 생성하고 Sprite Render와 Animator를 붙여준다.원하는 애니메이션을 Animation View에 넣고 SampleRate를 설정하면 애니메이션을 만들 수 있다.만들어진 애니메이션을 Animator에서 설정하면 다음과 같이 동작한다.트랜지션 조절하면 애니메이션 간의 전이를 할 수 있다...
메테리얼 색상 변경GameObject의 적용된 Material의 색상을 변경해 보자.Material은 Render Component에 적용되어 있다.이를 받아와 color의 값을 변경하면 색상을 변경할 수 있다.using System.Collections;using System.Collections.Generic;using UnityEngine;public class MatColorChanger : MonoBehaviour{ private BoxCollider boxCollider; [SerializeField] private GameObject cube; private Vector3 minBounds; private Vector3 maxBounds; void Start() ..
알고리즘알고리즘은 프로그래밍에서 문제를 해결하기 위한 단계적인 절차나 방법을 의미한다. 알고리즘의 주요 특징입력: 알고리즘은 하나 이상의 입력을 받는다.출력: 알고리즘은 하나 이상의 결과를 생성한다.명확성: 각 단계는 모호하지 않고 명확해야 한다.유한성: 알고리즘은 유한한 수의 단계 후에 반드시 종료되어야 한다.효율성: 알고리즘은 가능한 한 효율적으로 설계되어야 한다. 알고리즘의 중요성프로그래밍에서 알고리즘은 매우 중요한 역할을 한다.효율적인 알고리즘은 프로그램의 성능을 크게 향상시키고, 복잡한 문제를 해결하는 데 필수적이다.  알고리즘의 종류정렬 알고리즘: 버블 정렬, 퀵 정렬, 병합 정렬 등검색 알고리즘: 선형 검색, 이진 검색 등그래프 알고리즘: 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS),..
15일차 요약트리트리는 계층적 구조를 표현하는 비선형 자료구조트리의 종류일반 트리: 노드가 임의의 수의 자식을 가질 수 있는 트리이진 트리: 각 노드가 최대 2개의 자식을 가질 수 있는 트리완전 이진 트리: 마지막 레벨을 제외한 모든 레벨이 완전히 채워진 이진 트리포화 이진 트리: 모든 내부 노드가 2개의 자식을 가지며, 모든 리프 노드가 같은 레벨에 있는 트리이진 탐색 트리: 왼쪽 자식은 부모보다 작고, 오른쪽 자식은 부모보다 큰 값을 가지는 이진 트리AVL 트리: 자동으로 균형을 맞추는 이진 탐색 트리로, 왼쪽과 오른쪽 서브트리의 높이 차이가 최대 1레드-블랙 트리: 자가 균형 이진 탐색 트리의 일종으로, 색상 속성을 사용하여 균형을 유지B-트리: 데이터베이스와 파일 시스템에서 사용되는 균형 검색 트..
14일차 요약큐FIFO형식의 자료구조BFS, 서버 메시지 큐 등 다양한 방식으로 활용 가능 우선순위 큐큐의 형식과 유사하며 우선순위에 따라 처리하는 요소를 결정하는 자료구조힙(heap) 기반으로 만들어졌다.다익스트라, 스케줄링 등 활용 가능 오브젝트 풀링오브젝트를 생성, 소멸시키는 작업은 비용이 많이 발생한다.오브젝트를 소멸시키지 않고 재활용하는 방법 = 오브젝트 풀링구현하는 방법은 다양한다.큐, 맵 등 다양한 자료구조 사용 가능생성, 소멸 비용이 줄어드는 대신 메모리를 차지하고 있으며 너무 많아질 시 단편화 문제 발생 가능 애니메이션 리타게팅애니메이션이 없는 mesh에 다른 mesh의 애니메이션을 적용하는 방법Rig의 Animation Type을 Humanoid로 설정해야 한다.Animator에 애니메..
13일차 요약인터페이스구현부 없이 선언부만 존재다형성 제공 커맨드 패턴행동을 객체단위로 관리하는 패턴이다.행동에 대한 추적이 편리하여 서버/클라이언트 구조에서 동기화가 용이하다.확정성이 좋다. LinqDB 쿼리와 유사한 형태를 가지는 C#의 쿼리 기능where, select, orderby 등 함수 및 키워드 지원반복문 대신 데이터를 필터링할 때 용이 CoroutineUnity에서 동시성을 제공하는 기능함수를 적절히 분리하여 실행 가능시간 제어, 조건 제어 등 다양하게 활용 가능코루틴을 사용하면 메모리에 올라가는 것이기 때문에 성능에 이슈가 있을 수 있으니 무분별하게 사용하지 않는 것이 좋다.스레드와는 조금 다른 개념코루틴은 단일 스레드에서 코루틴에 관한 오브젝트를 적절히 스케줄링하여 관리따라서, 스위칭..
12일차 요약스택(Stack)LIFO형식의 자료구조이다.활용 예시웹 브라우저 뒤로 가기 : 가장 나중에 열린 페이지부터 뒤로 가기를 실행합니다.문서작업에서 Ctrl+Z : 가장 나중에 수정한 내역부터 되돌립니다.후위 표기법 계산재귀적 알고리즘 Unity Editor CustomizingUnity Editor는 커스터 마이징하여 편리하게 사용하는 것이 가능하다.Menu Item을 만드는 방법[MenuItem("Window/Scope Checker")]Attribute를 이용하여 Menu에 추가한다.OnGUI라는 Unity Event함수를 통해 화면을 어떻게 구성할지 설정한다. Inspector를 설정하는 법Script를 작성할 때, Attribute를 설정하여 Editor에서 표시될 방식을 설정할 수 있다..
11일차 요약링크드 리스트(Linked List)데이터 요소를 순차적으로 연결한 자료구조장점삽입, 삭제에 용이맨 앞/뒤: O(1), 중간: O(n)동적 크기단점접근에 불리: O(N)캐시 비효율역방향 탐색에 불리 더블 링크드 리스트(Double Linked List)링크드 리스트에서 이전 노드를 가리키는 포인터가 추가된 자료구조장점역방향 연산을 개선이전 노드에 대한 즉시 접근 가능단점추가적인 메모리 필요(이전 노드 포인터)삽입, 삭제 시 좀 더 복잡한 연산 필요      링크드 리스트(Linked List)데이터 요소들을 순차적으로 연결한 자료구조각 노드는 데이터와 다음 노드를 가리키는 포인터로 구성메모리 상에서 연속적이지 않은 위치에 저장[Data|Next] -> [Data|Next] -> [Data|N..
hvv_an
'C#' 태그의 글 목록 (2 Page)