반응형

Unity 75

유니티 씬 전환시 오브젝트 유지하기 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

Unity FlowCanvas(in paradoxnotion) Visual Scripting

[ * 필자 Unity 버전 == 2020.3.6f1 ] https://assetstore.unity.com/packages/tools/visual-scripting/nodecanvas-14914 NodeCanvas | 비주얼 스크립팅 | Unity Asset Store Get the NodeCanvas package from Paradox Notion and speed up your game development process. Find this & other 비주얼 스크립팅 options on the Unity Asset Store. assetstore.unity.com AssetStore에서 다운로드 (무료는 아니지만 볼트를 사용할 바에 차라리..) Package를 추가하고 사용하고자 할 오브젝트에..

Unity Bolt(비주얼 스크립팅) 기본개념

[ * 필자 Unity 버전 == 2020.3.6f1 ] Bolt는 코딩 없이 노드 기반으로 작성 가능한 비주얼 스크립팅 툴 - 코딩으로 인한 개발의 진입 장벽을 조금은 낮춰주고 비 프로그래머가 작업할 때 본인이 생각한 로직이 맞는지를 간단히 확인하거나 빠르게 프로토 타이핑을 내야 할 경우 사용하기 적절하다고 한다. (Unreal의 경우 내장으로 비주얼 스크립팅이 가능한 Blueprint를 제공한다.) ​ /* 아 그런데 진짜 진짜로 몇 번을 사용해 봐도 아직 내가 코딩이 더 편해서인지 조금 아니 매우 불편한 점들이 많다. 일단 어느 정도 뭘 좀 하려고 하면 아무리 super unit으로 빼고 뭘 해도 보기가 참 복잡해진다. + 쓰다 보면 결국 코딩, Unity Component에 대한 내용을 알아야 한..

유니티 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

Unity Addressable Asset System 기본 개념

[ * 필자 Unity 버전 == 2020.3.6f1 ] Addressable Asset System (2018.2 이상의 버전부터 지원) - Assets을 좀 더 효율적으로 관리하기 위해 새롭게 나온 시스템 [새로운 시스템이나 Asset Bundle을 기반으로 작동] - Address를 이용하여 에셋의 관리, 로딩, 빌드가 통합된 시스템이다. - 모든 동작이 비동기로 구현된다. ​ 여러 장점들 - 에셋 빌드와 배포의 단순화 [직접 레퍼런스, Resources 폴더, 에셋 번들 등을 사용한 에셋 접근 방법이 통합되기 때문에 편리해짐] - 효율적 에셋 관리 [종속성이 어떻게 되어있는지, 메모리 로드, 언로드 현황이 어떤지를 볼 수 있음] - 런타임 중 에셋 관리가 편함 - 에셋들의 의존 관계를 알아서 확인..

Shader HLSL -> Shader Graph화 할때 유용한 사이트

HLSL에서 사용하는 함수들이 보통(?) Shader Graph의 node에서 제공하는 함수와 내용이 같지만 자세히 보면 같은 함수임에도 node에서 설정을 어떻게 하냐에 따라 출력이 다르게 나올 수가 있어서 꼭 HLSL의 함수 내용과 Shader Graph의 node의 내용을 비교해가면서 작업해야 한다. https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl High-level shader language (HLSL) - Win32 apps HLSL is the C-like high-level shader language that you use with programmable shaders in DirectX. docs...

Unity/Tips 2021.06.03
반응형