Unity/제로부터 구현
-
비동기 데이터 저장Unity/제로부터 구현 2024. 7. 25. 16:22
데이터 파일 관리하기1. 플레이어가 가지고있는 고유 데이터와 맵별로 가지고있는 데이터를 분리2. 플레이어 데이터와 맵 데이터를 가지고있는 클래스를 비동기로 저장하기 1. 플레이어가 가지고있는 고유 데이터와 맵별로 가지고있는 데이터를 분리맵마다 가지고 있는 데이터들이 모두 상이하기 때문에 하나의 데이터파일에서 관리하는 것이 가독성이나 필요한 데이터를 찾는 과정이 더 복잡할 것 같아 플레이어 데이터와 분리. 더보기더보기더보기[Serializable]public class SaveFileData{ public SerializableSaveMapDataDictionary SerializableSaveMapDataDictionary; public PlayerSaveData _PlayerSaveData..
-
Pentagon Balance UI 제작하기Unity/제로부터 구현 2024. 6. 7. 18:01
캐릭터의 스텟을 받아와 오각형 밸런스 UI로 보여주기 위해 제작* 이번에 제작한 오각형 밸런스 유아이는 월드 스페이스에서 사용되게 제작. 1. 캐릭터의 스테이터스 5가지를 받으면, 각 스테이터스를 최대 스테이터스로 나눠 0 ~ 1 사이의 값으로 만들기.2. 오각형의 각 꼭지점 위치 계산하기 void CalculatePentagonVertices() { for (int i = 0; i 오각형을 만들 것이기 때문에 360을 5 로 나눠준 뒤 꼭지점을 가장 윗부분에 위치시키기 위해 18도에서 시작.각도를 레디안 값으로 변환 후 코싸인을 사용해 각 꼭지점 위치를 구합니다. 3. 오각형의 각 꼭지점 위치와 0 ~ 1 사이의 값으로 만들어 놓은 스테이터스를 사용해 매쉬 생성스테이터스에 ..
-
AssetPreview.GetAssetPreview() 로 얻은 텍스쳐 배경 투명하게 만들어서 저장하기Unity/제로부터 구현 2024. 4. 27. 16:59
AssetPreview.GetAssetPreview() 란?AssetPreview.GetAssetPreview() 는 오브젝트의 프리뷰 이미지를 아주 간단하게 텍스쳐로 가져올 수 있는 Unity Editor에서만 사용 가능한 함수 입니다.기본적으로 AssetPreview.GetAssetPreview() 로 얻은 텍스쳐는 회색 배경의 불투명한 이미지를 만들어 줍니다.하지만 AssetPreview.GetAssetPreview() 로 얻은 이미지의 배경이 불투명하면 다른 오브젝트나 UI에 넣어 사용할때 불투명한 배경이 굉장히 다른 오브젝트나 UI의 그림을 방해하기 때문에 AssetPreview.GetAssetPreview()로 얻은 텍스쳐의 배경을 투명하게 만들어 볼 것 입니다. 1. AssetPreview...
-
MiniMap (2D)Unity/제로부터 구현 2024. 1. 21. 18:47
탑다운 형식의 게임의 MiniMap 만들기 1. 카메라를 새로만들어 Projection 을 Orthgraphic으로 바꿔줍니다 카메라를 통해 미니맵을 만들 것이기 때문에 원근감없이 일정한 크기로 보여줄 것입니다 2. 카메라가 화면에 렌더링 되는것을 막아야 하기 때문에 카메라에 Target Texture에 랜더링된 텍스쳐를 넣어줄 것 입니다 폴더를 하나 만들어 Render Texture 을 만들어 줍니다. 3.새 레이어를 추가합니다, main Camera 에 Culling Mask로 랜더링할 레이어를 선택할 수 있습니다. Minimap 레이어만 해제해 줍니다. 새로 만들어진 Camera 에 Culling Mask는 Minimap 만 설정해줍니다. 새로 만든 카메라에는 Minimap 레이어만 랜더링하게 되고..
-
Cinemachine 을 사용한 카메라 이동 범위 제한 (2D)Unity/제로부터 구현 2024. 1. 16. 15:54
1. Cinemachine VirtualCamera 생성 카메라 설정 카메라 범위 설정 2. Cinemachine Confiner Cinemachine Confiner를 추가하려면 Virtual Camera 인스펙터의 하단에서 Add Extension 드롭다운 메뉴를 클릭하고 CinemachineConfiner를 선택합니다. 3. 새 게임 오브젝트를 선택하여 이름을 CameraConfiner로 변경합니다. Polygon Collider 2D 컴포넌트를 추가해 줍니다. Polygon Collider 2D에서 Edit Collider를 눌러 맵 테두리로 설정해줍니다. 4. Cinemachine VirtualCamera 에 추가한 Cinemachine Confiner에 Confiner mode 를 2d 로 해..
-
플레이어의 정보를 로컬 저장소에 저장하기 (PlayerPrebs)Unity/제로부터 구현 2023. 12. 24. 18:40
PlayerPrefs는 로컬 저장소에 데이터를 저장하는 기능을 제공합니다. PlayerPrefs를 사용하면 게임 또는 애플리케이션의 실행 중에 데이터를 영구적으로 보존할 수 있으며 특정 키(Key)와 값(Value)의 쌍으로 데이터를 저장하고, 이를 로컬 저장소에 보관합니다. 저장된 데이터는 애플리케이션이 종료되어도 유지되며, 다음 실행 시에도 읽을 수 있습니다. 플레이어 데이터 클래스를 하나 생성해줍니다. 플레이어의 이름을 받아와 새로운 플레이어 클래스를 생성해주고 로컬 저장소에 이미 존재한다면 기존에 있던 데이터를 가져오고, 아니면 새로 만들어 줍니다. 플레이어의 정보를 저장하고, 가지고 올 수 있게 함수를 만들어줍니다. 1. 플레이어 데이터 클래스를 하나 생성해줍니다. [System.Serializ..
-
Meteor 구현하기(Shader,Particle 활용)Unity/제로부터 구현 2023. 12. 14. 20:55
메테오 만들기. 1. 운석 shader 생성. Shader Graph Fragment 콘텍스트 Normal(Tangent Space) : 픽셀의 표면 법선(normal)을 나타냅니다. 표면 법 선은 픽셀의 방향을 결정하는 데 사용되며 빛의 입사 각도, 그림자 및 조명 효과 등의 계산에 중요한 역할을 합니다. Emission : 픽셀에게 추가적인 발광 혹은 광원 효과를 부여하는 데 사용됩니다. 2. 노드 생성 텍스처 셈플링 Sample Texture 2D Normal From Texture 텍스처로부터 법선(normal) 데이터를 추출하는 데 사용됩니다.일반적으로 텍스처는 색상 정보를 담고 있지만, Normal From Texture 노드를 사용하면 텍스처의 RGB 채널을 법선 벡터로 해석할 수 있습니다...
-
(2D)Enemy 정해진 영역에서 반복 이동 시키기(+Blend Tree)Unity/제로부터 구현 2023. 12. 14. 15:49
오늘의 구현 정해진 영역 내에서 랜덤한 위치로 반복 이동시키기 + Blend Tree 를 사용해 애니메이션 적용시키기 이동 영역을 Enemy기준으로 반지름 n 만큼의 원으로 정하고, 랜덤한 레디언 값으로 접선좌표를 구해 Enemy가 그 지점으로 이동했다가 다시 원래 위치로 돌아오게 만들것입니다. lerp 함수에 보간값으로 대칭함수를 사용해 목표지점에 도달했다가 원래위치로 돌아오게 만들 것 입니다. 목표 지점으로 이동할때의 이동 방향을 구해 Blend Tree의 변수로 사용해 줍니다. 1. 적이 죽지 않았을경우 반복해서 이동 시킬것이며, 목표지점으로 갔다가 원래 위치로 복귀했을시 새로운 목표위치를 찾아 반복적으로 이동 시킬 것 입니다. 보간 함수 lerp는 대칭 함수를 사용합니다. 보간 값은 0부터 1 사..