[C#] MySqlConnector를 통해 DB와 통신하기
·
unity game modules
MySqlConnector 패키지를 이용하여 DB와 통신할 수 있습니다. static 메서드를 통해 별도의 인스턴스 없이 편리하게 접근하여 DB 쿼리를 작성할 수 있도록 구현합니다. 📺 미리 보기 💬 서론 '미리보기'에 나오는 영상은 Morph! 게임에서 사용자의 로그인을 하는 과정입니다. 작성한 'MySqlManager' 클래스는 서버에 구현되어있으며, 클라이언트는 서버를 통해 DB에 접근하는 방식입니다. 이렇게 구현한 이유는 MySQL에 접근하기위한 접속쿼리가 클라이언트 코드에 노출되지 않게 하기 위함입니다. 클라이언트의 디컴파일을 통해 리터럴이 노출되면 DB 자체가 공격을 받을 수 있기 때문입니다. 📖 구현 내용 MySqlManager에서는 Insert, Update 등을 수행할 수 있는 'Comm..
.OBJ 파일을 쉽게 수정하는 Tool (MeshWiz 1.0)
·
unity tools & functions
OBJ 파일을 읽어 크기, 회전 및 Verticles Quality를 쉽게 조절하고 OBJ 파일의 스크린샷과 GIF를 촬영할 수 있는 기능을 제공하는 MeshWiz를 Unity로 개발하여 공유합니다. 💬 서론 이 기능은 오픈소스를 활용하여 제작하였습니다. 유니티 프로젝트는 깃허브에 업로드 되어있으며, 무료로 사용이 가능합니다. GitHub - Bonnate/MeshWiz: A program that sets the size(scale), rotation, and pivot(to center) of the .obj file. A program that sets the size(scale), rotation, and pivot(to center) of the .obj file. - GitHub - Bonna..
[유니티] Edit 모드에서 물리를 이용해 오브젝트 배치
·
unity tools & functions
유니티의 Play Mode에서 활성화되는 유니티 물리 시뮬레이션을 Edit Mode에서 사용하여 리지드바디와 콜라이더를 이용하는 오브젝트들을 물리 시뮬레이션을 이용하여 자연스러운 배치가 가능합니다. Play Mode가 시작될 때 오브젝트가 끼거나 공간이 남아 불필요한 움직임을 미리 계산하여 오브젝트들의 안정적인 배치가 가능합니다. GitHub - Bonnate/Unity-Non-Playmode-Physics-Simulator: a unity tool designed to focus on the Simulation feature in edit mode a unity tool designed to focus on the Simulation feature in edit mode - GitHub - Bonnat..
[유니티] WAV. 파일의 decibel 조절 tool
·
unity tools & functions
효과음의 평균 db이 서로 달라 별도의 프로그램으로 조절해야하는 불편함이 있어 이 문제를 해결하기 위해 unity editor에서 wav 파일의 db을 손쉽게 조절할 수 있는 tool을 만들어 배포합니다. 📺 미리 보기 💬 서론 이 기능은 Github에 업로드 되어있습니다. Unity Editor 2021.3.5f1 및 2022.3.7f1에서 테스트 되었습니다. GitHub - Bonnate/Unity-WAV-Easy-Volume-Editor: Unity Editor extension designed for developers working with WAV files. Unity Editor extension designed for developers working with WAV files. - Git..
[유니티] 에셋의 이름을 편리하게 변경
·
unity tools & functions
유니티에서 Assets의 이름을 직관적이고 규칙적으로 관리하는것은 매우 중요합니다. 연속적인 같은 이름을 가지는 에셋들의 이름을 편리하게 지어주는 Tool을 구현하였습니다. 📺 미리 보기 📖 구현 내용 Project 폴더 내 에셋들의 이름을 변경할 수 있습니다. 하이어라키에 내 오브젝트들의 이름을 변경할 수 있습니다. 시작 인덱스 값을 지정하여 이 값부터 시작할 수 있습니다. (예시, 12부터 새롭게 넘버링) 하이어라키 오브젝트의 이름을 변경한 건에 대하여 undo가 가능합니다. ⚒️ 구현 Editor Tool로 구현하였습니다. · 구현 내용 #if UNITY_EDITOR using UnityEditor; using UnityEngine; public class EasyRenameWindow : Edit..
[유니티] 피해 효과 (Damage effect overlay)
·
unity game modules
플레이어가 적으로부터 피해를 받은경우 오버레이 캔버스에서 이를 시각적으로 표현하고, 체력이 낮은 경우 또한 이미지를 이용하여 시각적으로 사용자에게 상태를 보여줄 수 있습니다. 이 기능을 구현한 후 정리하였습니다. 📺 미리 보기 HTML 삽입 미리보기할 수 없는 소스 📖 구현 내용 플레이어가 피해를 받은 경우 HitOverlay() 함수를 호출하여 일시적인 피해 효과를 보여줍니다. 플레이어의 체력이 변경될경우 CheckHp() 함수를 호출하여 현재 체력의 비율을 검사해 낮은 체력 경고 이미지를 활성화 합니다. 낮은 체력 경고 이미지가 활성화된경우 여러개의 이미지를 서로 페이드하여 움직이는 이미지 효과를 연출합니다. ⚒️ 구현 체력 피해를 시각적으로 보여줄 매니저와 여러개의 이미지를 Lerp하여 페이드하는 ..
[유니티] 중복 Enum ID 업데이트 툴
·
unity tools & functions
열거형(enum)을 사용할 때 기획 의도에 따라 이미 선언된 enum id에서 중간에 번호가 삽입되어 중복되는 enum 번호가 생길 수 있습니다. 이런 경우 자동으로 enum ID를 중복되지 않게 갱신해 주는 툴을 사용할 수 있습니다. 📺 미리 보기 enum MsgId { .... // 생성된 GenerateTransformSync를 파괴 C_DESTROY_GENERATE_TRANSFORM_SYNC = 14; S_DESTROY_GENERATE_TRANSFORM_SYNC = 14; C_TRANSFORM_SYNC = 15; S_TRANSFORM_SYNC = 16; C_MOVE_RIGIDBODY_TRANSFORM_SYNC = 17; C_REQUEST_RIGIDBODY_SYNC_TEST_1 = 17; C_REQ..
유니티 WebGL 빌드 서비스하기
·
unity etc./others
📖 학습 목표 유니티에서 빌드한 WebGL 빌드를 글로벌 서비스 하는 방법을 배웁니다. ✨ 시작하기 전에 이 과정은 23년도 여름학기 7월 오프라인 강의 중 번외로 추가 수업을 위한 강의입니다. 📒 과정 0. 깃허브 GitHub: Let’s build from here GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea... github.com 깃허브에 접속합니다. 우측 상단의 Sign up 버튼을 눌러 회..
[유니티] 유니티 에디터 스크린샷 캡쳐 도구
·
unity tools & functions
유니티 에디터에서 Scene의 화면을 빠르게 캡쳐할 수 있는 유니티 윈도우 에디터를 구현하여 배포합니다. 📺 미리 보기 GitHub - Bonnate/Unity-Editor-Screenshot-Capture: Unity Editor Window for capturing screenshots Unity Editor Window for capturing screenshots. Contribute to Bonnate/Unity-Editor-Screenshot-Capture development by creating an account on GitHub. github.com 💬 기능 미리 정의된 해상도 중에서 선택하거나 사용자 지정 해상도를 설정합니다. 선택한 해상도에 따라 종횡비를 자동으로 계산합니다. 캡쳐된..
[유니티] Hex를 RGB Color로 변환
·
unity tools & functions
색상을 표현하기 위해 HEX(#000000)를 사용할 수 있습니다. 유니티에서 HEX를 RGB Color로 변환하여 사용할 수 있도록 스크립트를 작성하였습니다. 💬 서론 · 기본 함수 Color color; ColorUtility.TryParseHtmlString("#60594F", out color); mActiveOptionLabels[i].color = color; 유니티의 기본 기능 중 Hex를 Color로 변환하는 코드가 이미 있습니다. 하지만, 함수 매개변수가 ref out을 사용하기때문에 Color을 미리 선언하고, 참조해야하기에 불필요한 코드가 늘어납니다. · 구현한 함수 mActiveOptionLabels[i].color = Utility.HexToColor("60595F"); 구현한 함..
[유니티] InputField Tab Navigation, Button Event
·
unity tools & functions
키보드 탭 내비게이션은 키보드 사용자가 UI 요소를 효율적으로 탐색하고 상호작용할 수 있도록 도와주는 접근성 기능입니다. 이 기능을 구현하고, 쉽게 설정할 수 있는 도구를 함께 제작하여 정리하였습니다. 📺 미리 보기 HTML 삽입 미리보기할 수 없는 소스 📖 구현 내용 Tab을 누르면 다음 입력필드로, Shift + Tab을 누르면 이전 입력필드로 이동합니다. 특정한 입력필드(마지막 입력필드)에서 설정한 키를 누르면 버튼 이벤트를 호출합니다. 입력필드 설정을 쉽고 간편하게 하기위해 자동으로 설정해주는 에디터 Tool을 구현하였습니다. ⚒️ 구현 에디터 기능과 런타임 도중 실행될 두개의 스크립트가 있습니다. · UiTabNavi 런타임도중 실행되어 키보드의 입력을 확인하여 탭 내비게이션을 수행합니다. us..
[Socket + MySql] 비동기 쿼리 사용 This MySqlConnection is already in use.
·
server/socket server
클라이언트 서버 DB 관계에서는 비동기 쿼리 호출응답을 사용하여야 하는데, 멀티쓰레드 환경에서 오류가 발생하였고, 이를 해결하여 정리해봤습니다. 📺 오류 This MySqlConnection is already in use. 오류가 나오며 현재 이 Connection이 사용중이라고 나옵니다. 💬 오류 스크립트 using MySqlConnector; using Server.Game; using System; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; /// /// MySQL 쿼리 매니저 /..
[유니티] 유니티 살펴보기 - 유니티 허브(Unity Hub)
·
unity etc./lecture
✨ 시작하기 전에 이 과정은 23년도 여름학기 7월 오프라인 강의를 위해 작성된 튜토리얼입니다. 📖 학습 목표 유니티 Hub에 대해 간단하게 살펴봅니다. 유니티를 사용할 수 있도록 라이센스를 발급합니다. 유니티 프로젝트를 생성합니다. 📒 과정 1. Unity Hub Unity Hub를 실행합니다. 만약 없다면, https://unity.com/download에서 다운로드 후 설치합니다. 2. 로그인 및 회원가입 좌측 상단 아이콘을 누른 후 "Sign in"을 클릭합니다. 회원가입 또는 로그인을 합니다. 로그인을 수행하면 나타나는 창에서 "Unity Hub 열기" 버튼을 눌러 UnityHub에 연결을 완료합니다. 좌측 상단 아이콘이 변경된 모습을 볼 수 있습니다. 로그인이 완료된 상태입니다. 3. 라이센스..
[유니티] 유니티 살펴보기 - 유니티 에디터(Unity Editor)
·
unity etc./lecture
📖 학습 목표 유니티 에디터 프로그램이 제공하는 기본 UI를 살펴봅니다. 📒 과정 1. 유니티 에디터 유니티 에디터가 열려 개발을 할 준비가 완료되었습니다. 본격적인 콘텐츠 제작 전, 유니티 에디터의 기본적인 UI를 살펴보도록 하겠습니다. 시작하기전에 우측 상단에서 UI 레이아웃이 Default로 설정되어있는지 확인합니다. Default를 기준으로 UI 살펴보기 강의를 진행하도록 하겠습니다. 2. Hierarchy 유니티의 "하이어라키(Hierarchy)"는 게임 오브젝트(Game Object)의 구조를 시각적으로 표현하는 창입니다. 하이어라키 창은 게임 안에 존재하는 모든 오브젝트를 계층 구조로 보여줍니다. 하이어라키 창은 게임 오브젝트의 부모-자식 관계를 나타내며, 부모 오브젝트 아래에는 하나 이상의..
[유니티] 카메라(Main Camera)
·
unity etc./lecture
📖 학습 목표 깃허브에서 유니티 프로젝트를 다운로드하고 여는 과정을 다룹니다. 유니티 에디터에서 카메라(Main Camera)에 대해서 배웁니다. Inspector(인스펙터)에서 카메라의 속성을 변경하여 여러 가지 기능을 다뤄봅니다. 📒 과정 1. 프로젝트 다운로드 GitHub - Bonnate/Unity_Lecture_SummerSemester_July Contribute to Bonnate/Unity_Lecture_SummerSemester_July development by creating an account on GitHub. github.com 위 링크에 접속하여 프로젝트 다운로드 사이트로 이동합니다. 깃허브란? 깃허브(GitHub)는 형상 관리 시스템인 Git을 기반으로한 웹 기반 호스팅 서비..
[유니티] 광원(Light)
·
unity etc./lecture
📖 학습 목표 유니티에서 태양 역할을 하는 직사광(Directional light, 디렉셔널 라이트)을 다룹니다. 직사광을 제외한 나머지 세가지의 추가 광원에 대해 간단히 배웁니다. 📒 과정 0. Scene 열기 프로젝트 폴더 내 Scenes폴더 안에 있는 "1. Basic(Camera, Light)"을 엽니다. 1. 빛의 방향 유니티에서 Directional Light(직사광)은 태양 또는 주변의 강력한 조명원을 표현하는 데 사용되는 주요 조명 유형입니다. Directional Light는 무한히 먼 거리에 위치한 것처럼 모든 방향에서 일정한 강도와 방향을 갖는 조명을 만들어냅니다. 이러한 특성으로 인해 Directional Light는 주로 실시간 그래픽스에서 실외 장면을 조명하는 데 사용되며, 태양..
[유니티] 물리엔진 - Collider, Rigidbody
·
unity etc./lecture
📖 학습 목표 유니티의 물리엔진에 대해 배웁니다. Collider와 Rigidbody의 개념을 배웁니다. 📒 과정 0. Scene 열기 프로젝트 폴더 내 Scenes폴더 안에 있는 "2. Physics(Collider, Rigidbody)"을 엽니다. 1. 물리엔진 유니티의 물리 엔진은 게임 오브젝트의 동작을 현실 세계의 물리 법칙에 기반하여 시뮬레이션하는 역할을 합니다. 이를 통해 게임에서 오브젝트들이 중력, 운동, 충돌, 회전 등과 같은 현실적인 동작을 보여줄 수 있습니다. 유니티에서 물리엔진을 활용하여 물리적인 처리를 구현하기 위해서는 두 가지의 컴포넌트를 사용합니다. Rigidbody와 Collider을 함께 사용하여 물리처리를 구현합니다. 2. Collider 콜라이더 컴포넌트는 물리 시뮬레이션..
[유니티] 에셋 스토어(Asset Store)
·
unity etc./lecture
📖 학습 목표 에셋 스토어에 있는 무료 에셋을 유니티 프로젝트에 추가하는 방법을 다룹니다. 📒 과정 1. 에셋 스토어 열기 상단 메뉴 바 중 Window를 선택합니다. Asset Store을 누릅니다. 만약 위와 같이 화면이 나온다면, Search online을 클릭합니다. 2. 에셋 탐색 프로젝트에 사용할 에셋을 탐색합니다. 현재 강의에 필요한 3D > Props로 탐색합니다. 우측 상단에 자동으로 로그인이 되는지 확인합니다. 만약, 기다려도 로그인이 되지 않는다면 유니티 허브에 사용한 아이디로 로그인합니다. 상단 탭 중 3D 영역에서 소품 영역으로 이동합니다. 만약 영어로 나타난다면 Props로 이동합니다. 화면을 조금 내려 가격 항목에서 무료 에셋 토글을 활성화합니다. 3. 에셋 구매 에셋을 찾으면..
[유니티] 프리팹(Prefab)
·
unity etc./lecture
📖 학습 목표 유니티의 프리팹(Prefab)의 개념을 익힙니다. 프리팹을 직접 생성하고 인스턴스화(Instantiate) 합니다. 📒 과정 0. Scene 열기 프로젝트 폴더 내 Scenes폴더 안에 있는 "3. Prefab"을 엽니다. 1. 프리팹(Prefab) Prefab은 "prefabrication, 조립식"의 약어로 공장이나 기타 제조 지역의 구조 부품들을 조합하고 건설 지역에 운송하여 구조물을 위치시키는 것을 의미합니다. 유니티에서 프리팹(Prefab)은 게임 오브젝트(GameObject)의 재사용성을 높이기 위한 개념입니다. 프리팹은 게임에서 사용되는 오브젝트, 캐릭터, 아이템, 장애물 등의 모든 종류의 게임 요소를 나타낼 수 있습니다. 프리팹을 씬에 추가하면 해당 프리팹의 복사본을 만들 수..
[유니티] 터레인(Terrain)
·
unity etc./lecture
📖 학습 목표 유니티의 터레인(Terrain) 기능을 배웁니다. 터레인을 이용하여 자신이 원하는 대로 지형을 생성합니다. 터레인에 텍스쳐(Texture) 브러쉬를 이용하여 지형을 색칠합니다. 터레인에 나무나 여러 장식물을 설치합니다. 📒 과정 0. Scene 열기 프로젝트 폴더 내 Scenes폴더 안에 있는 "4. Terrain Sample"을 엽니다. 1. 터레인(Terrain) 유니티에서 터레인(Terrain)은 게임 환경에서 지형을 구성하는 컴포넌트입니다. 터레인은 주로 3D 게임에서 사용되며, 산, 언덕, 계곡, 강, 평야 등과 같은 다양한 지형 특징을 만들 수 있습니다. 이 컴포넌트를 사용하면 게임 내에서 현실적인 지형을 만들고 조작할 수 있습니다. 2. 터레인 생성 하이어라키의 빈 공간을 우클..
[유니티] 오디오(Audio)
·
unity etc./lecture
📖 학습 목표 유니티의 오디오 시스템에 대해 배웁니다. 오디오 리스너(Audio Listener)와 오디오 소스(Audio Source)를 익힙니다. 3D Sound와 2D Sound의 차이를 익힙니다. 📒 과정 0. Scene 열기 프로젝트 폴더 내 Scenes폴더 안에 있는 "5. Audio"을 엽니다. 1. Audio Listener 유니티에서 "오디오 리스너(Audio Listener)"는 씬에 배치되어 있는 오디오 소스(Audio Source)에서 재생되는 소리를 듣고 이것을 사용자에게 들려주는 역할을 합니다. 오디오 리스너는 기본적으로 씬에 배치되는 카메라(Main Camera) 오브젝트의 컴포넌트로 추가되어 있습니다. 기본적으로 오디오 리스너는 배치되어있기때문에 별도로 생성하지 않아도 됩니다..
[유니티] 파티클(Particle) - Confetti(컨페티) 효과 제작
·
unity etc./lecture
📖 학습 목표 유니티의 파티클(Particle System)에 대해 배웁니다. 파티클을 학습하고 컨페티 효과를 만들어봅니다. 🔨 시작하기 전에 유니티의 파티클(Particle System)은 매우 많은 기능들로 이루어져 있습니다. 이 모든 것을 다룰 순 없으며, 컨페티 효과를 만들면서 관련된 기능 설명을 하도록 하겠습니다. 컨페티 효과를 만들면서 과정을 완전히 따라 하지 않고 여러 가지 기능을 응용하여 여러분들이 직접 커스텀하여 멋진 파티클을 만들어보세요. 📒 과정 0. Scene 열기 프로젝트 폴더 내 Scenes폴더 안에 있는 "6. Particle"을 엽니다. 1. 파티클 유니티에서 파티클 시스템은 게임이나 시뮬레이션에서 입자 효과를 구현하기 위해 사용되는 강력한 도구입니다. 파티클 시스템은 작은 ..
[유니티] 골프 게임 제작 실습
·
unity etc./lecture
📖 학습 목표 지금까지 배웠던 내용을 토대로 골프 게임을 제작합니다. 유니티 프로젝트를 빌드하는 방법을 배웁니다. ⛳ 게임 규칙 마우스를 좌/우로 이동하여 카메라의 방향을 전환합니다. 마우스 좌클릭을 누르고 있으면 좌측 하단의 빨간색 게이지가 차오릅니다. 마우스 좌클릭을 누르고 있는 상태에서 마우스 좌클릭을 떼면, 공이 앞 방향으로 날아갑니다. 골프공이 물에 충분히 잠기면(y < -1) 물에 빠짐 처리가 되어 진행상황이 초기화됩니다. 골프공이 골인지점(Flag)에 도달하는경우 골인 처리가되어 컨페티 파티클과 메시지가 출력됩니다. 📒 요구사항 · 주의! 유니티의 Play모드가 활성화 되어있는 상태에서는 변경사항이 초기화됩니다! 콘텐츠를 제작할 때 Play모드가 아닌지 꼭 확인하신 후 작업을 진행해주세요. ..
[유니티] 캐릭터 애니메이션 - 애니메이터 컨트롤러 실습
·
unity etc./lecture
📖 학습 목표 유니티 애니메이터 컨트롤러에서 일반 노드(Node)의 애니메이션 클립을 변경합니다. Has Exit Time을 이용하여 자신만의 애니메이션 루프를 생성합니다. Blend Tree 노드에서 애니메이션 클립을 추가하고 수정합니다. 자신만의 캐릭터를 골라 씬에 배치하여 애니메이션을 재생합니다. 📒 과정 0. Scene 열기 프로젝트 폴더 내 Scenes폴더 안에 있는 "8. Animation"을 엽니다. 이번 강의에서는 /Assets/Characters 폴더 내에 "Ai Movement"와 "Dance Loop" 두 파일을 사용합니다. 1. 일반 노드 클립 Scene의 중앙에서 춤을 추는 캐릭터의 애니메이션을 변경합니다. /Assets/Characters 폴더 내에 "Dance Loop" 파일을..
[유니티] 인터렉티브 콘텐츠 제작 실습
·
unity etc./lecture
HTML 삽입 미리보기할 수 없는 소스 📖 학습 목표 지금까지 배웠던 내용을 토대로 인터렉티브 콘텐츠를 제작합니다. 📺 콘텐츠 규칙 마우스 좌클릭을 누르고있으면 배경 색상 전환이 빨라집니다. 마우스 포인터를 캐릭터가 아닌 Prop(소품)에 갖다대면 초기 위치로부터 멀어지며 회전합니다. 마우스 휠 스크롤을 하면 카메라가 Spline(곡선)을 따라 이동합니다. 📒 요구사항 · 캐릭터 모델을 원하는 모델로 교체하거나, 모델의 개수를 변경합니다. · 애니메이터 컨트롤러를 수정하거나, 새로 생성하여 원하는 애니메이션 루프를 작성합니다. · 카메라의 경로를 제어합니다. · Spline(곡선)을 수정하여 카메라 이동하는 경로를 수정합니다. 하이어라키에서 "Character Camera Spline"를 클릭하거나, 파..
[C# 서버] RSA(공개키) 방식으로 통신
·
server/socket server
서버와 클라이언트 간 통신에서 비밀번호와 같은 민감한 정보를 공개키 방식으로 통신하는 이유는 보안과 개인 정보 보호를 강화하기 위해서입니다. 공개키 암호화는 대칭키 암호화에 비해 추가적인 보안 기능을 제공합니다. 💬 시작하기 앞서... 본 글은 소켓 서버 자체 구축 중 로그인 기능을 구현하기위해 서버로 비밀번호를 요청할 때 비밀번호를 평문으로 보내면 유출가능성이 있어 이를 해결하기위한 공개키 암호화 방식을 사용하는 방법을 구현하고 정리한 글 입니다. 💬 서론 공개키 암호화 방식은 공개키와 개인키라는 두 개의 키를 사용합니다. 공개키는 모든 사람에게 공개되어 있으며, 개인키는 키 소유자에게만 비밀로 유지됩니다. 이 방식은 다음과 같은 장점을 가지고 있습니다. 기밀성: 공개키로 암호화된 정보는 개인키로만 해..
[유니티] 입력필드(InputField)에 엔터(Enter, Return) 이벤트 등록
·
unity etc./others
채팅 시스템이나 로그인 등 여러 입력필드에서 엔터를 눌러 전송을 할 때가 있습니다. 이런 자연스러운 인터페이스를 스크립트로 작성할 수 있습니다. 📺 미리 보기 HTML 삽입 미리보기할 수 없는 소스 💬 서론 본 글은 채팅 시스템을 구현할 때 작성한 스크립트를 기반으로 작성하였습니다. ⚒️ 구현 요약 · ChatManager.cs using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; using Google.Protobuf.Protocol; public class ChatManager : Singleton { ... [Header("채팅 입력 필드")] [Se..
[유니티] 입력필드(InputField) 포커스 할당하기
·
unity etc./others
입력필드를 채팅 입력으로 사용할경우 플레이어가 채팅을 보낸후 시스템에서 다시 입력필드에 포커스를 할당하면 편리하게 다음 채팅을 이어서 보낼 수 있게 됩니다. 📺 미리 보기 HTML 삽입 미리보기할 수 없는 소스 💬 서론 매우 간단하게 입력필드에 함수를 입력하면 됩니다. ⚒️ 방법 public void TrySendChat(string input) { ... //// /// 채팅을 전송했다고 가정 //// // 채팅 전송 { C_RequestChat c_RequestChatPacket = new C_RequestChat() { PlayerId = NetworkManager.Instance.PlayerId, ChatStr = input, }; NetworkManager.Instance.Send(c_Reque..
[유니티] 오브젝트 위치 자동 정렬
·
unity tools & functions
에디터에서 개발자는 효율적인 게임 레벨 디자인과 시각적 일관성을 위해 오브젝트 위치를 편리하게 정렬해야할 필요가 있습니다. 이번 글에서는 특정 오브젝트를 기준으로 동일한 간격으로 편하게 정렬하는 기능을 구현하고 이를 정리하였습니다. 📺 미리보기 HTML 삽입 미리보기할 수 없는 소스 💬 서론 이 기능은 유니티 에디터 기능으로 빌드 후 런타임 도중 실행되는 기능은 아닙니다. ⚒️ 구현 해당 스크립트를 그대로 복사하여 프로젝트에 추가하면 바로 사용이 가능합니다. · Script using UnityEditor; using UnityEngine; public class ObjectAlignWindowViaVector : EditorWindow { private GameObject baseObject; priv..
[유니티] 에디터 자동 저장
·
unity etc./others
유니티 에디터에서 작업을 하던 도중 에디터에서 크래시가 일어나 비정상적으로 종료된경우 Scene에서 설정한 값들이 저장되지 않아 문제가 발생할 수 있습니다. 이것을 해결하기위한 무료 에셋을 소개해드립니다. 💬 서론 유니티 에디터에서 자동 저장 기능은 다음과 같은 이유로 필요합니다: 1. 예기치 않은 문제로 인한 데이터 손실 방지 유니티 에디터를 사용하다가 컴퓨터나 프로그램이 갑자기 종료되는 등 예기치 않은 문제가 발생할 수 있습니다. 이러한 경우, 사용자가 저장하지 않은 변경 사항이 모두 사라질 수 있습니다. 자동 저장 기능을 사용하면 이러한 상황에서도 마지막 저장 시점 이후에 변경된 내용을 보존할 수 있습니다. 2. 작업의 효율성 향상 자동 저장 기능을 사용하면 작업 중간에 저장을 계속 수행할 필요가 ..
bonnate
'Unity' 태그의 글 목록