빗변의 길이가 1인 직각 삼각형에서 밑변은 cos, 높이는 sin과 같다. 단위원에서 원 위의 점은 P(cos$\theta$, sin$\theta$)로 나타낼 수 있다. 점 P에 n을 곱하면 $\theta$ 방향으로 n만큼 떨어진 점을 나타내게 된다. (극좌표계) Mathf.Cos, Sin의 파라미터 값은 라디안 값이기 때문에 각도(degree)로 변...
점 A(2, 4)과 점 B (6, 7)이 있을 때 벡터AB는 B - A 로 나타낼 수 있음 (4, 3) 이 때 x축으로는 4, y축으로는 3만큼 이동하는 것이며, 피타고라스 정리에 의하여 실제 이동거리(크기)는 sqrt(16 + 9)로 계산할 수 있다. 크기가 1인 벡터를 방향벡터라고 하며 벡터를 벡터의 크기로 나누어 구할 수 있다. (4/5, 3/...
A(x1, y1) B(x2, y2) 두 벡터가 있을 때두 벡터의 내적(dot product)은 $\\overset{\\rightarrow}{A}\\cdot\\overset{\\rightarrow}{B}$로 나타낼 수 있고 스칼라 값이 나오게 된다.$\\overset{\
A(x1, y1, z1), B(x2, y2, z2)$\\overset{\\rightarrow}{A} \\times \\overset{\\rightarrow}{B}$로 나타내며 A, B 벡터와 오른손 법칙에 따른 수직한 벡터가 결과로 나오게 된다.$\\overset{\\
동차좌표특정 목적으로 좌표계에 축을 하나 늘려 표현하는 것(x, y, z) => (x, y, z, 1)변환행렬행렬을 특정하게 변환시키는 행렬들을 변환행렬이라고 하며,변환행렬은 단위행렬, 크기 변환 행렬, 이동 행렬, 회전 행렬 등을 말한다.변환행렬을 연속적으로 곱할 때
F = ma힘 F는 질량 m과 가속도 a에 비례한다.그러나 힘이 일정할 시 질량과 가속도는 반비례 한다는 것을 알 수 있다.1kg짜리 m1과 10kg짜리 m2가 있을 때 동일한 힘을 줄 시 m1의 속도와 가속도 모두 m2보다 크다.m1과 m2에 동일한 가속도를 줄 시
물체가 일정한 힘을 받는 운동, 가속도가 일정한 운동(F = ma, m이 변하지 않는다면 a가 일정함)a $\\times$ t = at (속도 변화량)v0 + at = v (속도)(v0 + (v0 + at)) $\\times$ t $\\times$ (1/2)= v0t
수직 항력맞닿은 두 물체 사이에 작용하는 힘으로 접촉면과 수직인 방향으로 밀어주는 힘중력과 반대 된다고 수직항력이 중력의 반대 방향이라고 잘 못 생각 할 수 있음마찰력맞닿은 두 물체가 접촉하여 운동할 때 그 물체의 운동을 방해하는 힘F(마찰력) = $\\mu$(마찰 계
토크 = 회전력$\\tau$ = r $\\times$ F = I $\\times \\alpha$ r = 반지름F = 힘I = 관성 모멘트 (관성에 따라 회전을 유지하려는 정도로 물체의 모양에 따라 다름)$\\alpha$ = 각 가속도I $\\approx mr^2$ 으로
운동량 = m(질량) $\\times$ v(속도)운동량 보존 법칙 $m_1v_1 + m_2v_2 = m_1v_1' + m_2v_2'$반발계수식$v_2' - v_1' = -e(v_2 - v1)$e = 반발계수완전탄성 (e = 1)두 물체가 충돌 후 속도가 서로 바뀜비탄성
Scene게임상의 오브젝트가 배치된 공간으로 카메라에 비춰지게 되는 환경실제적인 맵이다.Camera게임상의 오브젝트를 보기 위한 눈으로 오브젝트들이 카메라에 투영된다.원근 투영과 직교 투영 두가지 방식이 존재메인 카메라에는 기본적으로 오디오 리스너 컴포넌트가 존재한다.
스크립트기본적으로 프로젝트 뷰 우측 영역에서 우클릭하여 Create에서 생성 가능생성된 스크립트 파일 이름을 기준으로 class가 생성 된다.class는 기본적으로 MonoBehaviour를 상속받고, start와 update 함수를 가지고 있다.MonoBehaviou
MaterialShader -> Unlit / TransparentUnlit: unlite 빛 효과를 받지 않음Transparent: 알파 값이 있는 이미지 사용여러 레이어로 되어 있는 배경 이미지들을 material로 만든다.scene에 quad를 만들고 mesh r
플레이어빈 게임 오브젝트를 만든 후플레이어를 조종할 빈 스크립트를 만들고 해당 오브젝트에 삽입모델을 다운 받고 원하는 prefabs을 선택모델이 카메라에서 어둡게 보이기 때문에 shader를 unlit / texture로 변경모델을 게임 오브젝트 아래에 넣고 오브젝트를
적 상태를 여러 단계로 정의하여 로드 및 리셋 시 부하가 없도록 함등장 시에는 최대 속도로 나오며 자연스러운 감속을 위해 Vector3.SmoothDamp를 사용퇴장 시에는 자연스러운 가속을 위해 Mathf.Lerp를 사용적과 플레이어 사이에 충돌이 일어날 경우 상대방
유저나 적이 쏘는 총알은 여러 정보를 담고 있어야 한다.총알을 누가 쐈는지, 어디서 어느 방향으로 쏜 것인지 등등플레이어와 적 프리팹에는 총알이 생성될 위치를 지정하기 위해빈 객체를 적절한 위치에 생성해 둔다.충돌 설정플레이어와 적은 모두 rigidbody와 colli
Partical system2D 이미지 및 애니메이션을 동작시켜 구름, 불꽃과 같은 이펙트를 만드는데 사용하는 컴포넌트기본적으로 항상 카메라를 바라보는 빌보드 모드이다.Renderer에서 material 변경 가능Start Color에서 이펙트 색상 조정 가능Start
적과 총알 그리고 이펙트까지 빈번하게 생성되고 사라지기 때문에 게임 상에 부하가 생긴다.이 3가지를 캐싱하여 프리팹 Instantiate를 줄여 부하를 줄인다.부하가 생길 수 있는 상황들file load: 게임 시작전 로드하여 부하를 줄인다.Instantiate: 캐시
유니티 UIlegacy UIezGUINGUIuGUIuGUI는 현재 유니티 기본 UI로 대부분 사용다른 UI들과 달리 UI camera가 따로 필요 없음기본 Transform을 상속받은 RectTransform을 정의하여 사용Canvas의 아래에 존재해야 화면에 렌더링
csv 파일 포맷콤마로 구분된 데이터엑셀 테이블로 작성하여 csv로 저장유니티에서 TextAsset 형태로 임포트Marshalling객체의 메모리 데이터를 저장 또는 전송에 적합한 데이터로 변환마샬링을 통해 csv 테이블의 레코드를 구조체로 변환하여 사용만들어야 하는
씬을 동시에 두 가지 이상 들고 있는 경우가 있다.이 때 activeScene이 바뀌는 경우 activeSceneChanged의 이벤트가 발생한다.sceneLoaded와 sceneUnloaded는 함수 그대로 씬이 로드되고 언로드될 때 이벤트 발생씬 로드 시 두가지 모
현재 지원이 중단된 네트워크 솔루션으로 비교적 간단히 멀티플레이를 구현 가능 NetworkManager 아래와 같이 사용할 클래스가 NetworkManager를 상속받아 필요한 내용 오버로딩 게임 오브젝트에 해당 컴포넌트를 붙이면 Offline Scene과 Onl
UI의 position을 수정하는 경우 transform의 position을 참고하는 것이 아니라RectTransform의 anchoredPosition을 참고해야 함이미 스크립트가 붙어있는 객체를 상속받은 클래스 스크립트로 교체할 때인스펙터 우측 상단의 ... 버튼을
UNet의 Online Scene에서 접속이 끊어지면 자동으로 Offline Scene으로 전환된다.네트워크가 끊긴 후 비동기로 씬을 로딩하면 문제가 발생할 수 있어서동기적으로 씬을 로드해야 함클라이언트는 서버가 shutdown된 후 OnClientDisconnect