분류 전체보기
-
스크린 좌표 / 월드 좌표유니티/각종 용어 2024. 2. 7. 00:59
스크린 좌표계는 화면의 width(넓이)와 height(높이)에 따라 x , y 좌표가 정해진다. 화면의 넓이와 높이를 결정하는 해상도의 픽셀(pixel)에 따라 화면에 나타내는 2D 좌표계이다. 마우스 포인터의 위치, 캔버스 등이 이 좌표계를 사용한다. 마우스를 클릭하는 위치, 손가락으로 터치하는 위치를 가져올때 사용할 수 있다 Scene에서 나타나는 게임세계에서의 게임 오브젝트 위치를 나타낼때 사용한다 Inspector창의 Transform에 있는 좌표이다 스크린 좌표로 본다면 당연히 접시는 가운데쯤 위치하지만 게임속 바구니의 위치는 0,0,0으로 맞춰져있다 이 스크린 좌표를 월드 좌표로 변경하는데 사용하는게 바로 Ray이다 if (Input.GetMouseButtonDown(0)) { Ray ray..
-
레벨 디자인, Debug.DrawRay, RayCast, RayCastHit유니티/유니티 메인 2024. 2. 7. 00:44
우선 카메라와 스테이지를 넣은뒤 위치나 방향을 조절한다 2D는 어떤지 모르겠는데 3D는 기왕이면 오브젝트도 깔끔한 위치에 배치하는것이 가장 베스트인것같다 내가 이걸 신경안쓰고 오브젝트 아무렇게나 놓았다가 고생하고 다시 만드는중이다 2D와 달리 3D에서는 기본적으로 라이트가 제공된다. 이번게임은 그림자가 이용되는 게임이기에 라이트를 조절해보자 Light를 선택하고 바로 위에서 직빵으로 빛을 비춰야하기 때문에 Rotation X축을 90도로 맞춘뒤 빛이 너무 강하지 않게 Intensity를 0.7로 내려주자 그리고 바구니를 배치해주자. 혹시 바구니의 그림자가 너무 부자연스럽다면 설정창에서 조절 가능하다 Edit - Project Setting - Quality - Shadow Distance : 30 바구니..
-
동기 / 비동기유니티/각종 용어 2024. 2. 5. 22:08
동기(synchronous) : "동시에 일어나는" 말 그대로 동시에 일어난다는 뜻. 요청과 그 결과가 동시에 일어난다는 일종의 약속 요청한 작업에 대해 완료여부를 따져 순차적으로 처리 바로 요청을 하면 얼마가 걸리던지 요청한 그 자리에서 결과가 주어져야 한다 설계가 매우 간단하고 직관적이지만 결과가 주어질때까지 아무것도 못하고 대기해야한다 비동기(Asynchronous) : "동시에 일어나지 않는" 요청과 결과가 동시에 일어나지 않을거라는 약속 요청한 작업에 대해 완료 여부를 따지지 않는다. 다음 작업 그대로 수 동기보다 설계가 복잡하지만, 결과가 주어지는데 시간이 걸리더라도 그동안 다른 작업가능. 자원관리 효율적 쉽게 말해 동기와 비동기의 차이는 작업을 순차적으로 수행할지 아닌지의 차이이다
-
직렬화(Serialization)와 역직렬화(Deserialization)유니티/각종 용어 2024. 2. 5. 22:01
직렬화 : 객체를 연속된 Byte나 string으로 변환하는 과정을 의미. 즉 객체의 복사본으로 되돌릴수 있음 또, 객체를 파일의 형태 등으로 저장하거나, 통신하기 쉬운 포맷으로, 전송 가능한 형태로 변환하는 과정을 의미 쉽게 말해 직렬화는 응용 프로그램에서 쓰는 데이터를 네트워크를 통해 전송하거나 DB 또는 파일에 저장 가능한 형식으로 바꾸는 프로세스이다 더 쉽게 말해 메모리를 디스크에 저장하거나, 네트워크 통신에 사용하게 위한 형식으로 변환하는것 역직렬화 : 직렬화된 파일 등을 역으로 직렬하여 다시 객체의 형태로 만드는것을 의미 저장된 파일을 읽거나 전송된 스트림 데이터를 읽어 원래 객체의 형태로 복원한다 쉽게 말해 외부 소스에서 데이터를 읽고 이를 런타임 객체로 바꾸는 반대 프로세스이다 더 쉽게 말..
-
3D(Terrian, 파티클, Ray 클래스)유니티/유니티 메인 2024. 2. 5. 10:56
Terrian = 산이나 강 등 지형을 간단히 색을 칠하듯 만들수 있는 기능. 지형과 마찬가지로 잔디나 모래, 3D 나무나 풀도 색을 칠하듯 심을수 있다 Hierarchy 창에서 3D Object - Terrian 선택해서 추가. 그럼 커다란 판 하나가 생성된다 Terrian은 일종의 큰 그림판 같은 느낌이다. 이 판 안에서는 마음대로 변형하고, 재질을 입혀 지면을 만들수 있다 Ctrl + Shift + F = 현재 보고 있는 위치로 카메라 위치를 가져오는 단축키(카메라 선택후 눌러야 함) Terrian을 선택후 Inspector창에서 두번째 Paint Terrian을 선택후 Raise or Lower Terrian을 선택 그럼 Scene창에서 마우스를 갖다댄 위치에 조금 무언가 올라온게 보인다 Insp..
-
물리엔진, 애니메이션, 씬변환유니티/유니티 메인 2024. 2. 5. 03:02
고양이를 올린뒤 rigidbody 2D와 box 콜라이더 추가 rigidbody 2D : 2D 한정 오브젝트에게 중력을 적용한다 Box Collider : 충돌판정을 위한 콜라이더 구름에게도 충돌판정을 위한 박스콜라이더를 입히면 게임 실행시 구름위에 고양이가 앉는걸 볼수있다 이렇게 Circle 콜라이더까지 추가해서 더 사실적으로 충돌판정을 만들수 있으나 정말 정교하게 만들지 않는다면 미끄러 넘어질수 있다 그럴땐 rigidbody의 Constrains로 들어가 축을 고정시킬수 있다 어느 축을 고정시키고 싶은지 알고 싶다면 3D 모드로 들어가 확인할수 있다 만약 구름에게도 rigidbody를 추가하지만 중력의 작용을 받고 싶지 않다면 Body Type에서 Kinematic을 선택하면 된다 이번에는 스페이스바..
-
프리팹, 충돌판정유니티/유니티 메인 2024. 2. 4. 19:27
1. 오브젝트를 배치해준다 using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerControl : MonoBehaviour { void Update() { if (Input.GetKeyDown(KeyCode.LeftArrow)) { transform.Translate(-3, 0, 0); } if (Input.GetKeyDown(KeyCode.RightArrow)) { transform.Translate(3, 0, 0); } } } 2. Playercontrol 스크립트를 작성 후 player 오브젝트에 넣어준다 -> 키를 누를때마다 3,-3씩 이동 Input.GetKeyDown(Key..