반응형

유니티 22

[Unity] 3D 맵 에디터 - 2. 브러쉬

저번 글에서는 터레인 지형편집을 알아보았는데요 하지만 지형이 한 곳만 튀어나오는 문제점이 있었습니다 이번 글에서는 그 문제를 해결하기 위하여 브러쉬를 만들고 적용시켜 보겠습니다 먼저 브러쉬에 사용할 이미지를 만들어주어야 합니다 저는 GIMP로 간단하게 하나 만들어 주었습니다 그다음 텍스쳐 설정에서 Read/Write를 활성화시켜 주세요 이러면 텍스쳐 설정은 끝났습니다 이제 코드를 작성할 시간입니다 using System.Collections; using System.Collections.Generic; using UnityEngine; public class TerrainEditor : MonoBehaviour { [SerializeField] private Terrain terrain; [Seriali..

[Unity] 3D 맵 에디터 - 1. 지형 편집

이번 글에서는 런타임에서 터레인을 이용해 지형편집이 가능한 3D 맵 에디터를 만들어 보겠습니다 일단 사전 준비를 해보겠습니다 먼저 터레인을 하나 생성해 주시고 사이즈를 본인이 원하는 크기로 설정해 주세요 저는 카메라에 다 들어와야 해서 32*32로 설정하였습니다 그다음 Terrain이라는 레이어를 하나 추가해 주세요 아까 만든 터레인에 Terrain레이어를 넣어주세요 준비 과정은 다 끝났습니다 이제 코드를 작성할 차래입니다 using System.Collections; using System.Collections.Generic; using UnityEngine; public class TerrainEditor : MonoBehaviour { [SerializeField] private Terrain te..

[Unity] 3D 랜덤 맵 - 2. 자연스러운 지형 생성

저번 글에서는 터레인을 이용하여 지형을 생성해 봤습니다 하지만 너무 부자연스러운 지형이 생성되는 문제가 있었습니다 그래서 이번 글에서는 저번 코드를 바탕으로 더 자연스럽게 지형이 생성되도록 해보겠습니다 우선 기존에 부자연스럽게 지형이 생성되는 문제를 해결하기 위해서는 Perline noise가 아닌 Fractal noise를 사용하여야 합니다 Fractal noise란? : 저주파 Perline noise와 고주파 Perline noise를 중첩하여 얻어낸 디테일한 노이즈 차이가 보이시나요? 그러면 이 Fractal noise를 생성하고 그것을 기반으로 지형을 생성하는 코드를 작성해 보도록 하겠습니다 using System.Collections; using System.Collections.Generic..

[Unity] Mathf.InverseLerp

오늘은 InverseLerp함수에 관해 배워봅시다 일단 그전에 Lerp에 관한 설명을 보고 오시면 이해가 더 편할 겁니다 2024.02.11 - [유니티/기타] - [Unity] Lerp함수 [Unity] Lerp함수 오늘은 유니티의 Lerp 함수에 대하여 알아보겠다 Lerp 함수란? : A와 B사이를 T로 선형 보간하는 함수들 어려워 보이는데 간단하게 이해가 가능하다 (a, b, t) 중 t가 0일 때 : a를 반환 (a, b, t) 중 t가 1 no-name-stroy.tistory.com Lerp함수와 달리 InverseLerp는 A와 B범위에서 Value가 속하는 위치를 0 ~ 1 값으로 반환합니다 EX) A = 1, B = 10, Value = 5.5 반환 : 0.5 쉽게 말해 Lerp함수는 A..

유니티/기타 2024.02.11

[Unity] 인벤토리 - 3. 드래그 드롭

이번 글에서는 마지막으로 인벤토리의 드래그 드롭 기능을 구현해 보도록 하겠습니다 일단 저번에 작성했던 스크립트 일부를 수정했습니다 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Inventory : MonoBehaviour { private Dictionary itemContainer = new(); public static Inventory Instance { get; private set; } public event Action OnItemChanged; public event Action OnNewItemAdded; private void Awake() { ..

[Unity] 인벤토리 - 1. 기본 구현

이번 글에서는 유니티에서 인벤토리를 만드는 법을 알아보겠다 일단 인벤토리 구현을 위해서는 아이템을 먼저 만들 필요가 있다 먼저 아이템을 구현해 주었다 using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(menuName = "SO/Item/Data")] public class ItemDataSO : ScriptableObject { //아이템의 스프라이트 [field:SerializeField] public Sprite ItemSprite { get; protected set; } //아이템의 이름 [field:SerializeField] public string ItemName { ge..

[Unity] Visual Studio에서 유니티용 DLL만드는법

이번글에서는 Visual Studio에서 유니티용 DLL을 만드는 법을 알려드리겠습니다 우선 Visual Studio에서 클래스라이브러리 탬플릿으로 프로젝트를 하나 만들어주세요 프로젝트를 만들었다면 참조를 추가해야 합니다 종속성을 우클릭하여 프로젝트 참조 추가를 눌러주세요 참조 관리자에서 찾아보기 탭으로 가주세요 이제 찾아보기를 클릭 후 본인의 유니티에디터가 설치되어 있는 폴더로 가서 UnityEngin.dll을 참조로 추가해 주세요 보통 "C:\Program Files\Unity\Hub\Editor\유니티버전이름\Editor\Data\Managed\UnityEngine.dll"에 저장되어 있습니다 참조가 잘 추가되셨다면 이제 UnityEngine.dll에 들어있는 여러 클래스를 사용할 수 있습니다(Mo..

유니티/기타 2024.02.08

[Unity]Vivox - 4. 3D 위치 음성 채팅 구현

이 글은 Vivox버전 16을 기준으로 작성되었습니다 이번글에서는 Vivox를 이용하여 3D 위치 음성 채팅을 구현해 보겠습니다 저번글에서 알려드렸던 음성채팅과 매우 유사합니다 using System; using System.Collections; using System.Threading.Tasks; using Unity.Services.Authentication; using Unity.Services.Core; using Unity.Services.Vivox; using UnityEngine; [Serializable] public class Channel3DSetting { //가청거리 [SerializeField] private int audibleDistance = 32; //작아지기 시작하는 거..

유니티/Vivox 2024.02.07
반응형