반응형

유니티 기초 17

유니티 씬 전환시 오브젝트 유지하기 DontDestroyOnLoad 간단한 예제 유니티 기초

이번 예제는 씬 전환 포스팅에 이어서 진행됩니다. 유니티에서 새로운 씬을 로드하게 되면 앞서 사용하던 씬의 내용은 사라지게 됩니다. 그런데 여기서 RPG 게임을 생각해 보면 Player처럼 새로운 씬이 시작되었을 때 Player 오브젝트를 다시 생성할 필요 없이 앞 씬에 있던 Player가 사라지지만 않아도 됩니다. 씬이 바뀌었다 해서 바뀐 씬에 또다시 Player을 만들 필요가 없다는 얘기죠? 이처럼 씬이 전환되었을 때도 없애지 말고 유지하고 싶은 오브젝트들이 있을 겁니다. 이를 위해 유니티는 DontDestroyOnLoad를 제공하고 있습니다. 그런데 DontDestroyOnLoad을 사용하면서 한가지 유의할 점이 있습니다. 바로 DontDestroyOnLoad를 사용할 오브젝트는 항상 최상위 오브젝..

Unity/기초 예제 2021.06.21

유니티 씬 전환 SceneManager 간단한 예제 유니티 기초

이번 예제는 앞서 만들었던 간단한 게임에 이어서 진행됩니다. 일단 씬 전환을 위해 LoadScene이라는 새로운 스크립트를 만들고 코딩을 바로 시작합니다. 4번 줄을 통해 SceneManger을 사용할 수 있습니다. 8번 줄 static 변수의 경우는 Box를 제거할 때마다 변수를 1씩 증가시켜 3이 되면 현재 씬을 로드하여 게임을 재시작할 수 있게 하기 위함입니다. Update() 안에 sceneLoadNumber가 3이 되었을 때 sceneLoadNumber을 다시 0으로 만들어주고 SceneManager.LoadScene(sceneName); 을 통하여 현재 씬을 로드해줍니다. 그렇다면 sceneLoadNumber는 어디서 올려주면 좋을까요?! 바로 bullet 스크립트가 가장 적절하지 않을까 합니..

Unity/기초 예제 2021.06.17

유니티 Raycast를 이용한 간단한 게임 만들기 Part 3 Player LineRenderer 간단한 예제 유니티 기초

-LineRenderer- 3D 공간에서 두 개 이상의 점 배열을 사용하고 각각을 연결하는 직선을 그립니다. 하나의 LineRenderer 컴포넌트는 단순한 직선에서 시작해서 복잡한 곡선까지 모두 그릴 수 있습니다. 다만 그려지는 모든 라인은 연속적이어야 합니다. 두 개 이상의 완전히 분리된 선을 그려야 하는 경우, LineRenderer를 포함하는 여러 개의 게임 오브젝트를 사용해야 합니다. LineRenderer의 속성 Cast Shadows 라인이 그림자를 드리우는지, 라인의 한쪽 면 또는 양쪽 면에서 그림자를 드리워야 하는지, 또는 라인이 별도로 그려지지 않고 그림자만 드리워야 하는지 등을 결정합니다. 스크립팅 API 참조 문서의 Renderer.shadowCastingMode 페이지에서 보다 자..

Unity/기초 예제 2021.06.14

유니티 Raycast를 이용한 간단한 게임 만들기 Part 2 Player 간단한 예제 유니티 기초

Player 오브젝트의 z 값을 -5로 한 뒤 자식으로 Capsule 2개와 Cube 1개를 생성해줍니다. 각 오브젝트의 Transform을 변경하고 Capsule(1)과 Cube에 Wall에 적용했던 Material을 적용하면 요로코롬 귀여운 Player가 탄생합니다. (이 Player 형상은 Unity Multy에 관한 내용을 찾아보다 유튜브에서 어느 한 분이 쓰셨던 건데 너무 귀여워서 저도 만들어.. 보았습니..다.....) 이제 Player을 움직여 볼까요?~ Player을 움직이기 위해 04. Scripts에 C# Script를 PlayerController라고 생성합니다. 전 예제(Translate and Rotate)를 참조하여 간단히 움직일 수 있도록 합시다. 작성한 스크립트를 Player..

Unity/기초 예제 2021.06.09

유니티 Raycast를 이용한 간단한 게임 만들기 Part 1 Stage 간단한 예제 유니티 기초

요로코롬 귀여운 Player가 3개의 Box를 없애는.. 그런.. 게임 .. 입니다.. 예제니까요.. 그럼요 .. 위와 같이 프로젝트를 생성한 뒤 01. Scenes, 02. Materials, 03. Prefabs, 04. Scripts 폴더를 생성하고 01. Scenes에 현재 씬을 저장해줍니다! 여기서 폴더를 이렇게 정리하는 건 나중에 보기 편하게 하기 위함일 뿐이며 각자 정리하시는 방법에 따라 다르게 하셔도 당연 무관합니다. 먼저 게임상의 바닥과 벽들이 있는 Stage를 만들어 보겠습니다. Hierarchy 뷰에 빈 오브젝트를 2개 생성 후 각 Stage, Player이라고 해줍니다. Stage 오브젝트 안에 3D Object인 Plane을 만들고 Plane의 Transform 중 Scale 모두..

Unity/기초 예제 2021.06.08

유니티 Raycast 아주아주 간단한 글 설명

-Raycast- Raycast는 광선 경로에 충돌체가 있는지 감지하기 위해 특정 방향의 점에서 보이지 않는 광선을 발사하는 과정입니다. Raycast의 문법 Vector3 origin은 광선의 시작 위치 점을 의미합니다. 그러므로 이 인스턴스에서 Vector3(x, y, z) 위치를 지정해서 넣어주시면 됩니다. Vector3 direction은 광선의 방향을 결정해 줍니다. Vector3 origin을 시작점으로 하고 Vector3 direction의 방향으로 광선이 나가는 원리입니다. 그런데 여기서 Vector3 origin, Vector3 direction은 Ray 변수로 대체할 수가 있습니다. 가령 이런 식입니다. RaycastHit hitInfo는 충돌체 충돌의 정보를 저장하는 변수입니다. 남은..

Unity/기초 예제 2021.06.07

유니티 Joints, Hinge Joint 간단한 예제 유니티 기초

이번 예제는 간단하게 3D Object인 Plane과 Cube, Sphere를 사용하였으며 바로 위 화면에 보이는 Cube과 Door라는 오브젝트 안에 있는 Left, Right(Cube)에는 AddForce 예제 때 사용하였던 Ex_06_1 스크립트가 포함되어있고 이번에 공부할 Hinge Joint가 적용되어있습니다. Sphere의 경우는 Rigidbody를 이용해서 오브젝트 움직임 구현하는 예제 때 사용했던 Sphere입니다. -Hinge Joint- Hinge Joint는 문 같은 물건에 안성맞춤이며 Spring Joint와 일부 속성을 공유합니다. 쉽게 생각하면 문의 경첩 역할을 해준다고 보시면 되겠습니다. Hinge Joint에서 축의 위치를 설정하고 그 기준으로 회전하게 됩니다. 속성 중 Sp..

Unity/기초 예제 2021.06.02

유니티 Joints, Fixed Joint, Spring Joint 간단한 예제 유니티 기초

유니티에서 제공하는 Joint 중 Fixed Joint_Spring Joint를 알아보도록 하겠습니다. 이번엔 실행 화면을 먼저 보고 진행하도록 하겠습니다. 이번 예제는 간단하게 3D Object인 Plane과 Capsule, Cube, Sphere를 사용하였으며 스크립트는 없습니다. (수직 하강하는 Cube는 기본 Cube에 Rigidbody가 적용되어있습니다.) -Fixed Joint- Fixed Joint는 게임 오브젝트를 Rigidbody를 가지고 있는 게임 오브젝트에 고정시키는데 사용할 수 있습니다. Fixed Joint의 속성 중 Break Force, Break Torque는 조인트를 분리하는데 필요한 최소한의 힘을 의미합니다. 조인트가 분리되면 게임 오브젝트는 다시 자유롭게 움직일 수 있게..

Unity/기초 예제 2021.05.31

유니티 Physics Materials 물리 재질 간단한 예제 유니티 기초

Cube(Black) 좌: Cube(Black), 우: Physics Materials 설정값 이번 예제는 간단하게 3D Object인 Plane과 Cube를 사용하였으며 스크립트는 없습니다. (사실 이렇게 글 시작 전 이미지 하나 띄우는 게 생각보다 꼭 봐야 할 이미지인데 이번엔 봐야 할 게 더 생기다 보니 이렇게 이미지가 많아졌습니다.. 흠.. 가독성을 위해 다음부턴 더 보기 좋게 올려보도록 하겠습니다.. 저게 뭔지도 모르는데 일단 보고 하라는 느낌이라 ..ㅠ) -Physics Materials- 물리 재질은 게임 오브젝트의 모습이 아니라 오브젝트가 물리 엔진에 반응하는 방식에 영향을 줍니다. 농구공과 볼링공의 탄성의 차이를 생각하면 될 것 같습니다. 둘은 질량에도 차이가 있지만 표면이 매우 달라 다..

Unity/기초 예제 2021.05.26

유니티 Invoke InvokeRepeating CancelInvoke 함수반복호출 간단한 예제 유니티 기초

이번 예제는 간단하게 3D Object인 Plane과 Sphere를 사용하였으며 Sphere는 Rigidbody가 적용되어있고 Prefab화 되어있습니다. Ex_10 스크립트를 Ex_10_Invoke 오브젝트에 적용하였습니다. Invoke, InvokeRepeating, CancelInvoke란?! ---------------------------------------------------------------------------------------- Invoke Invoke 함수를 이용하면 일정한 시간 지연 후에 함수의 호출을 예약할 수 있습니다. 이를 통해 시간에 감응하는 유용한 함수 호출 시스템을 구축할 수 있습니다. Invoke 함수는 두 개의 매개변수가 있습니다. 호출하고 싶은 메소드의 이름..

Unity/기초 예제 2021.05.25
반응형