Unity(121)
-
[XR 전문 인력 과정] 유니티 타워디펜스 만들기(2) -총쏘기(Raycast), 무기 잡기, 무기 던지기
Player와 Tower는 빼고 다른 물체는 Ray에 맞게 구현할 예정Ray가 맞은 부분에 이펙트 생성 PlayerFire 스크립트 생성XRInput.cs 스크립트의 IndexTrigger를 사용한다. public enum Button {#if PC One = ButtonTarget.Fire1, Two = ButtonTarget.Jump, Thumbstick = ButtonTarget.Fire1, IndexTrigger = ButtonTarget.Fire2#elif Oculus One = OVRInput.Button.One, Two = OVRInput.Button.Two, Thumbstick = OVR..
2023.11.23 -
[XR 전문 인력 과정] 유니티 타워디펜스 만들기(1) -XR 세팅, 씬 세팅, 화면 회전, 플레이어 이동
XR 프로젝트 세팅 에셋 다운로드https://drive.google.com/file/d/1lo48lG5iuIbq-TauEUYEdnGLj0XaVcnb/view?usp=drive_link Bootcamp Map.zip drive.google.com 에셋 씬 수정을 한다. Directional Light과 Camera를 뺀 나머지를 하나의 그룹으로 묶는다. 에셋 오류 해결오류를 클릭해서 나온 오브젝트의 Rigidbody 전체 제거 Rtower 에셋 Hierarchy에 배치, 이름을 TowerObject로 변경한다. 이름을 변경하는 이유는 나중에 AI를 위해서. Transform 변경 충돌 효과를 위해서 Mesh Collider 추가 빈 오브젝트로 Player 생성, Transform 수..
2023.11.22 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(15) 화면 해상도 고려하기
화면 해상도에 따라 UI 또는 적 위치, 플레이어 위치가 일정한 비율을 유지하고 싶다면, Camera.main.ViewportToWorldPoint를 사용하면 된다. min = Camera.main.ViewportToWorldPoint(new Vector3(0, 0, 0));max = Camera.main.ViewportToWorldPoint(new Vector3(1, 1, 0));PlayerScript에서 플레이어의 이동을 제한하는 부분에서 해상도가 달라지더라도 Camera 크기에 맞게 최대치와 최소치를 반영할 수 있다. GameManager 스크립트에서도, void Start() { gem = 0; gemScore.text = gem.ToString(); ..
2023.09.25 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(14) 메인 메뉴 UI 추가하기
메인메뉴로 쓸 새로운 씬을 생성하고 Panel, Text를 추가하여 게임 타이틀을 설정한다. Canvas 설정은 메인 씬과 동일하게 설정한다. 게임 타이틀 텍스트에 애니메이션을 넣기 위해 Animator 컴포넌트를 추가한다. Anims 폴더에 Animator Controller, Animation을 각각 추가한다.Animation에는 Loop Time을 활성화한다. Animator Controller에 애니메이션을 드래그하여 넣는다. 게임 타이틀 컴포넌트 - Animator에 만들어 놓은 Animator Controller를 끌어서 적용한다. 애니메이션을 수정하여 적용한다. 배경은 GameScene에서 썼던 배경을 그대로 가져온다. 'Start Game'과 'Quit' 버튼을 추가하였다. ..
2023.09.25 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(13) 코인 점수 표시하기, UI 메뉴 이미지 추가하기
프로젝트에 Text(Legacy)를 추가하고 적절한 폰트를 설정한 후 코인 점수를 표시할 용도로 중앙 위쪽에 Text를 위치시킨다. 앵커는 최상단을 따라가게 하여 좌우에 영향을 받지 않게 한다. public class GameManager : MonoBehaviour{ public Text gemScore; ...gemScore 변수를 추가한 후void Start(){ gem = 0; gemScore.text = gem.ToString();}gemScore의 텍스트에 float 형의 gem을 string으로 바꿔 대입한다. 이제 PlayerScript에서 OnTriggerEnter2D에서 gem을 먹을 때 스코어가 올라가게 설정하면 된다. void OnTriggerEnt..
2023.09.22 -
[Unity] 캔버스(Canvas)와 UI, Text, RectTransform
Render Mode - Overlay모니터의 크기나 해상도에 따라서 캔버스의 위치가 자동으로 변한다. 달라질 수 있는 UI의 상대적인 위치를 동일하게 고정시키며 확대 축소가 자동으로 된다.게임 화면과 캔버스가 겹쳐서 보인다.버튼 추가로 캔버스를 하나 만들면, 기본으로 Screen Space - Overlay로 설정되어있는 것을 볼 수 있다. 오버레이 모드에서는 캔버스와 왼쪽 아래 작은 게임 화면이 겹쳐서 나타나게 된다. Render Mode - Camera캔버스의 크기가 카메라의 크기와 동일하게 자동으로 조정된다.Overlay 모드와 같게 캔버스와 UI 항목이 해상도에 따라 상대적인 위치가 동일하다. 기본으로는 캐릭터 스프라이트가 버튼 위에 올라가있다. 씬에서 조절하면 버튼이 캐릭터 스프라..
2023.09.22