유니티/유니티 관련 용어
-
싱글톤 (Singleton Pattern)유니티/유니티 관련 용어 2024. 4. 26. 16:27
싱글톤 : 프로그래밍 디자인 패턴 중 추상 객체 인스턴스 생성 패턴중의 하나로 1. 게임 시스템에서 전체를 관장하는 스크립트(단일 시스템 자원 관리 차원)2. 게임 시스템상 전역 변수의 역할을 하는 스크립트3. 씬 로드시 데이터가 파괴되지 않고 유지4. 여러 오브젝트가 접근을 해야 하는 스크립트의 역할5. 단 한개의 객체만 존재 이렇게 5가지의 특성을 지니고 있다 특히 3번 같은 경우 새로운 씬을 로드하더라도싱글톤만큼은 다른 변수들처럼 파괴되는것이 아닌 자신이 가진 데이터들을 함께 유지한다 using System.Collections;using System.Collections.Generic;using UnityEngine;public class GameManager : MonoBehaviour{ ..
-
Vector3.Reflect유니티/유니티 관련 용어 2024. 3. 19. 17:08
지정된 법선을 사용하여 표면을 벗어난 백터의 반사를 계산하는 함수 Vector3.Reflect(반영하려는 들어오는 벡터의 방향, 입력 벡터가 반사될 표면의 법선 벡터)incoming이 (1,1)normal(법선벡터)이 (0,1) 혹은 (0,-1)이다. Reflect될 때 법선 벡터에 수직인 평면에 대해 대칭이기 때문에 법선 벡터의 방향을 뒤집어도 결과가 변경되지 않는다 그러므로 Vector3.Reflect(incoming, normal)의 결과는 (-1,1)이 되는것이다
-
Collision.Contact[]유니티/유니티 관련 용어 2024. 3. 19. 16:35
Collision 타입은 충돌 지점들의 정보를 담는 ContactPoint 타입의 데이터를 contacts[] 라는 배열의 형태로 제공한다 private void OnCollisionEnter2D(Collision2D coll) { // 충돌 시 이전 속도의 벡터 크기를 이용하여 반사 후 속도를 계산하고, 속도를 감속시킵니다. Vector2 dir = Vector2.Reflect(lastVelocity.normalized, coll.contacts[0].normal); float speed = lastVelocity.magnitude; // 이전 속도의 크기를 사용 rigid.velocity = dir * Mathf.Max(speed..
-
글로벌 좌표 / 로컬 좌표 / Transform.Translate유니티/유니티 관련 용어 2024. 3. 12. 12:26
유니티 내에서 글로벌/월드 좌표는 Scene뷰에서 변경할 수 있다글로벌좌표 : 유니티의 가상 공간의 기준 좌표(월드좌표)유니티 가상공간의 (0,0,0) 기준점. 이건 유니티에서 관리되며 변경할 수 없음 글로벌 좌표시 오브젝트의 회전값을 아무리 변경해도 글로벌좌표로 고정된 기즈모는 변경되지 않는다 그럼 반대로 로컬 좌표란 오브젝트를 기준으로 시점이 되는 좌표이다 오브젝트를 회전하면 로컬좌표로 고정된 기즈모가 오브젝트를 따라 회전하는것을 볼수 있다물론 어느 좌표가 됐든 Inspector창에 보이는 Transform의 모든 값은 로컬좌표 기준으로 화면에 표시된다 그렇기에 transform.Translate를 사용할때 두번째 인자를 넣어 월드좌표를 기준으로 갈것인지,아니면 로컬좌표를 기준으로 갈것인지를 결정한다
-
Shader, Rendering Pipeline유니티/유니티 관련 용어 2024. 2. 18. 20:22
"화면에 출력할 픽셀의 위치와 색상을 계산하는 함수""소프트웨어 명령의 집합으로 주로 그래픽 하드웨어의 렌더링 효과를 계산하는데 쓰임""프로그래밍이 가능한 렌더링 파이프라인을 프로그래밍하는데 쓰임""그래픽 데이터의 음영과 색상을 계산하여 다양한 재질을 표현하는 방법" Shader란 "Shade + er" 이다. 쉽게 말해 Shade의 역할을 해주는 함수라고 볼 수 있다여기서 Shade란 '색의 농담, 색조, 명암 효과를 주는 행위'를 말한다물론 이뿐만 아니라 블러, 입체광원, 왜곡, 크로마키, 모션 감지 등등 수많은 효과 제작을 포함한다. 기하학적으로 3D 장면을 구성하고 가상의 카메라를 설정한 뒤에 모니터에 2D 표현을 만들어내는 과정 렌더링 파이프라인이 이루어지는 과정은 크게 4가지가 있다1. 오브젝..
-
코루틴 (Coroutine)유니티/유니티 관련 용어 2024. 2. 14. 15:22
유니티에서 정말 중요한 역할을 하는 코루틴. 생각해보니 코루틴에 대해서도 확실하게 짚고 넘어간게 없어 정리해둔다 Unity Documentation에 있는 사전적 정의이다. 사실상 가장 중요한 코루틴의 핵심 요소는 이 3가지로 정의 가능하다 1. 작업을 다수의 프레임에 분산2. 실행을 중단한 부분에서 다음 프레임을 계속할 수 있는 메서드3. 시간의 흐름에 따른 이벤트의 시퀀스, 절차상 애니메이션 표현 가능 이것만 봐서는 뭔가 이해가 될것 같으면서도 무슨 말인지 잘 모르겠다. 하지만 이 예시를 보자void Fade(){ Color c = renderer.material.color; for (float alpha = 1f; alpha >= 0; alpha -= 0.1f..
-
foreach유니티/유니티 관련 용어 2024. 2. 14. 01:03
어떻게보면 for, while, do~while 문과 함께 가장 많이 쓰이는 반복문 중 하나이다 이 시점에서 foreach문을 다루는건 너무 늦는게 아닌가 싶지만그래도 그냥 넘어가는것과 확실하게 짚고 넘어가는것은 차이가 크기에 짚고 넘어가겠다 public int[] num = new int[5];void Start(){ num[0] = 0; num[1] = 1; num[2] = 2; num[3] = 3; num[4] = 4; foreach(int idxnum in Num) { Debug.Log(idxnum); } 위 코드처럼 foreach문은 변수를 배열에 담아 배열에 담긴 변수들을 반복시켜주는 반복문이다 여기서 foreach문과 함께 정의된..
-
딕셔너리 (Dictionary)유니티/유니티 관련 용어 2024. 2. 13. 22:55
딕셔너리 : 데이터를 구별할 수 있는 Key와 데이터인 Value의 KeyValuePair의 타입을 저장하는 콜렉션 Key와 Value는 한 쌍으로 Key를 통해 Value값을 알 수 있고, 당연히 Key는 중복될 수 없다 선언 방식은 다음과 같다 Dictionary 이름 = new Dictionary(); Dictionary dic = new Dictionary(); => 왼쪽이 Key 오른쪽이 Value 이처럼 딕셔너리는 Key와 Value에 쓰일 두 개의 자료형이 필요하다. 이제 딕셔너리의 사용법을 알아보자 Add 메소드를 통해 Key와 Value를 저장한다Dictionary dic = new Dictionary();dic.Add(0,100);dic Add(0,5..