유니티 vscode intellisense 오류
·
unity etc./others
23년 8월 3일 기준 유니티에서 vscode의 intellisense가 갑자기 작동되지 않은 버그가 발생하였습니다. ❓ 문제 상황 위 이미지처럼 유니티에서 vscode의 intellisense가 갑자기 작동되지 않은 문제가 발생하였습니다. 🔨 해결 방법 이 문제는 평소에 잘 사용중이던 vscode의 c# 업데이트로 확인됩니다. 그러므로 vscode의 c# 확장 기능의 버전을 다운그레이드 합니다. c# 확장에서 제거 옆 버튼을 눌러 다른 버전 설치를 클릭합니다. 2.x 버전으로 업데이트된것이 확인되어 이 버전이 문제를 일으키는것으로 예측됩니다. 1.26.0 버전으로 선택하여 업데이트를 되돌리며 이전 버전으로 돌아갑니다. 다운그레이드 업데이트가 완료되면 다시로드를 하며, 새 버전으로 업데이트는 생략합니다...
유니티 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 버튼을 눌러 회..
[유니티] 입력필드(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 etc./others
유니티 에디터에서 작업을 하던 도중 에디터에서 크래시가 일어나 비정상적으로 종료된경우 Scene에서 설정한 값들이 저장되지 않아 문제가 발생할 수 있습니다. 이것을 해결하기위한 무료 에셋을 소개해드립니다. 💬 서론 유니티 에디터에서 자동 저장 기능은 다음과 같은 이유로 필요합니다: 1. 예기치 않은 문제로 인한 데이터 손실 방지 유니티 에디터를 사용하다가 컴퓨터나 프로그램이 갑자기 종료되는 등 예기치 않은 문제가 발생할 수 있습니다. 이러한 경우, 사용자가 저장하지 않은 변경 사항이 모두 사라질 수 있습니다. 자동 저장 기능을 사용하면 이러한 상황에서도 마지막 저장 시점 이후에 변경된 내용을 보존할 수 있습니다. 2. 작업의 효율성 향상 자동 저장 기능을 사용하면 작업 중간에 저장을 계속 수행할 필요가 ..
[유니티] An error occurred while resolving packages: Project has invalid dependencies: com.unity.render-pipelines.universal cannot be found
·
unity etc./others
유니티에서 프로젝트 버전을 다운그레이드하여 여는경우 기존 파이프라인의 버전을 찾지 못한다는 오류가 나타날 수 있습니다. 이것은 패키지의 버전이 변경되지 않아 발생하는 오류일 수 있습니다. ✅ 해결 방법 패키지 매니저에서 파이프라인(본 글에서는 URP)를 삭제 후 재설치합니다. 1. 기존 파이프라인 패키지를 제거합니다. 2. 패키지를 재설치합니다. 현재 유니티 프로젝트 버전에 맞는 최신버전의 파이프라인 패키지가 다운로드됩니다. 3. 유니티 프로젝트를 재시작합니다. 변경사항을 안정적으로 적용하기위해 프로젝트를 껐다 재시작합니다. 프로젝트를 실행하면 유니티는 이전 버전의 머티리얼을 현재 버전에 맞는 머티리얼로 변환작업을 거칩니다.
[유니티] 렌더텍스쳐(Render Texture) 메모리 누수(Memory Leak)
·
unity etc./others
유니티에서 렌더텍스쳐를 사용할 때 메모리의 비 정상적인 사용량으로 문제가 생겨 이를 자세히 살펴보아 문제점을 발견하여 정리하였습니다. ❓ 문제 상황 평소에 1GB가 넘지 않는 메모리가 8GB 정도의 매우 높은 상태로 구동이 되고 있는 상황입니다. 메모리 누수에는 여러가지 이유가 있지만, 이번 문제는 잘못된 렌더텍스쳐의 사용이었습니다. 📌 원인 렌더 텍스쳐를 Output하는 카메라가 활성화되어 있는 상태입니다. 하지만 카메라에서 렌더링한 렌더텍스쳐를 화면에 보여주는 Raw Image는 비활성화 상태입니다. 필요한 경우에만 해당 Raw Image를 활성화하여 렌더텍스쳐를 보여주도록 한 상태입니다. 🔨 해결 방법 if(index == 3) mCharacterSelectRenderCamera.gameObject..
[유니티] 오브젝트 핑크색 오류 해결 (쉐이더 오류)
·
unity etc./others
유니티에서 외부 에셋을 임포트하여 씬에 불러오면 가끔 쉐이더의 호환문제 또는 기타 설정으로 오브젝트가 핑크색으로 보여질 때가 있습니다. 해당 머티리얼이 Lit Shader을 사용하는경우 간단하게 해결할 수 있습니다. URP, HDRP에서 사용할 수 있는 방법입니다. ❓ 문제 상황 위 이미지와같이 임포트한 에셋의 데모 씬에서 오브젝트가 핑크색으로보여 사용할 수 없는 상태입니다. 머티리얼에 사용중인 쉐이더를 보니 'Standard'라고 되어있으며, 이는 일반적인 Lit Shader을 사용하는것으로 판단이되어 머티리얼 컨버터를 이용하여 URP, HDRP에 맞는 쉐이더를 사용하도록 하겠습니다. 🔨 해결 방법 위 이미지와 같이 Windows > Rendering > Rneder Pipe Converter을 누릅니..
[유니티] 텍스트 맨 앞에 표시하기
·
unity etc./others
유니티에서 월드에 배치한 텍스트가 다른 오브젝트에 가려 텍스트가 일부만 보여지는 문제를 간단하게 해결하는 방법을 정리하였습니다. URP 환경에서 테스트하였습니다. ❓ 문제 상황 위 이미지와같이 '작은 체력 포션' 이라는 아이템 설명이 다른 오브젝트에 가려 보이지 않습니다. 🔨 해결 방법 TextMeshPro를 사용하는 컴포넌트의 쉐이더를 Distance Field Overlay로 설정합니다. ✅ 결과 거리나 위치에 상관 없이 항상 텍스트가 가장 앞에 보이는것을 확인할 수 있습니다.
유니티 TMP 폰트 한번에 모두 바꾸기
·
unity etc./others
✅ 기능 TMP 폰트를 바꿔 유니티 씬 내에(하이어라키) 있는 모든 TMP를 바꾸기 위해서는 일일이 하나씩 찾아 폰트를 바꾸는 방법뿐입니다. 하지만 이것을 쉽고 간편하게 해결하는 스크립트를 작성하여 정리하였습니다. 매우 간단하며 쉽게 적용이 가능합니다. 아래 링크는 유니티포럼에 질문한 글을 보고 답변한 내용입니다. 폰트를 새로 생성하여 씬 내에 적용하고 싶을 때 찾을 필요 없이 버튼 하나로 설정할 수 있도록 해주는 스크립트입니다. Is there any way to replace Font A for Font B in Textmesh pro without going thru all of the texts? As the title says. Is there any way to replace Font A fo..
[유니티, C# 오류] InvalidOperationException: Collection was modified; enumeration operation may not execute
·
unity etc./others
📝 스크립트 public void AddPassiveEffect(PassiveType passiveType, float duration, float multiply) { PassiveData newPassive = new PassiveData(passiveType, duration, multiply); foreach (PassiveData currentPassiveData in mCurrentPassive) { //만약 이미 해당 패시브가 있으면서, 강도(multiply)가 같다면? if(currentPassiveData.Passive == newPassive.Passive && currentPassiveData.PassiveEffectMultiply == multiply) { //해당 패시브는 제거 S..
[유니티] 오디오믹서 사운드 관리
·
unity etc./others
✅ 요구사항 게임에서 사용자에게 음향 크기를 조절할 기능을 제공해주어 디바이스마다 서로다른 사운드 크기에대해 적절히 대응해야합니다. 이전에는 모든 오디오클립 각각의 불륨을 조절하는 방식을 사용하였으나, 유니티에서 제공하는 오디오믹서라는 기능을 이용하여 편리하게 오디오의 타입(BGM, EFFECT 등)마다 불륨을 조절하는 방법을 구현하여 정리해보았습니다. ✅ 응용 기능 유니티에서 제공하는 오디오 믹서를 사용합니다. 오디오 믹서 및 개념 개요 - Unity 매뉴얼 AudioMixer는 AudioSources에서 생성하는 오디오 시그널을 더 복잡하게 라우팅하고 믹싱하는 AudioSources를 참조할 수 있는 에셋입니다. 에셋의 유저에 의해 생성된 AudioGroup 계층 구조를 통해 믹싱을 기 docs.un..
유니티 애니메이션 합치기(애니메이션 레이어, 마스크)
·
unity etc./others
✅ 우리가 게임을 플레이 하면 걷기나 뛰기를 하는 동시에 다른 행동을 동시에 수행하는경우가 많습니다. 그렇기에 우리는 자연스럽게 걷기, 뛰기등의 애니메이션을 보여줌과 동시에 공격이나 회복등의 다른 행동을 함께 섞어서 제공을 해야합니다. 이번에는 유니티의 애니메이션 레이어를 이용하여 여러개의 애니메이션을 동시에 재생하는 방법을 정리해보았습니다. 1. 특정 부위만 재생하기 위한 애니메이션 아바타 만들기(걷기와 방패막기를 동시에 사용해보자) 프로젝트 폴더에서 Create > Avatar Mask를 통해 아바타 마스크 에셋을 생성합니다. 아바타 마스크 에셋을 클릭하면 휴머노이드가 나오는데, 휴머노이드의 각 영역을 클릭하면 초록색-빨간색으로 바뀝니다. 빨간색은 해당 애니메이션에서 해당 부분을 무시한다는 뜻 입니다..
유니티 안드로이드 지원 게임 빌드하기
·
unity etc./others
✅유니티는 여러 플랫폼을 지원하여 빌드를 할 수 있도록 지원합니다. 유니티에서 안드로이드 빌드를 위한 준비를 해보겠습니다. 방법 자체는 매우 간단하지만, 안드로이드 게임에서 원활한 지원을 위해 모바일UI에 대한 스크립트를 따로 작성해야합니다. 1. Android Build Support 설치하기 안드로이드를 빌드하기위해서 유니티허브(또는 유니티 아카이브)에서 Android Build Support를 설치합니다. 2. 유니티 에디터 껐다 켜기 유니티 에디터가 켜져있는 상태에서 설치를한경우, 바로 적용되지 않아 한번은 껐다 켜줘야합니다. 3. Android로 Platform을 Switch하기 빌드를 하기 위해 Android로 플랫폼을 전환해줍니다. 4. (선택)색영역 설정하기 Player > Other Se..
유니티 이미지 외곽선 오류(PSD Matte) 해결하기
·
unity etc./others
포토샵에서 작업하여 UI Canvas에 배치한 Sprite이미지의 외곽선이 뿌옇게 나타나는 문제가 발생하였습니다. 포토샵에서는 선택 및 외곽선 Smooth 기능을 지원하여 알파값이 서서히 줄어들어 부드럽게 보여줄 수 있는 기능인데, 이것이 유니티에서 제대로 적용되지 않은 모습이 보입니다. ✅ 이 문제는 Unity에서 제공하는 Remove PSD Matte를 이용하여 간단하게 해결이 가능합니다.
유니티 KeyCode 값
·
unity etc./others
Unity keycode values Unity keycode values. GitHub Gist: instantly share code, notes, and snippets. gist.github.com 유니티 키 코드 값 // // Summary: // Not assigned (never returned as the result of a keystroke). None = 0, // // Summary: // The backspace key. Backspace = 8, // // Summary: // The tab key. Tab = 9, // // Summary: // The Clear key. Clear = 12, // // Summary: // Return key. Return = 13, // /..
유니티 Shader.Find 함수 오류 해결하기
·
unity etc./others
쉐이더를 공부하면서 직접 구현한 쉐이더를 프로젝트에 추가하고 사용하는데 에디터에서는 발생하지 않았지만, 빌드를 한 후 실행해보면 구현한 쉐이더가 핑크색으로 나타나며 제대로 작동하지 않은 버그가 나타나서 이를 해결하기위해 정보를 찾고 성공적으로 해결했습니다. 1. 원인 쉐이더를 스크립트에서 불러오기위해 Shader.Find() 함수를 사용하였지만, 해당 쉐이더를 찾을 수 없음. mLineRenderer.sharedMaterial = new Material(Shader.Find("Shader Graphs/StraightRocketLine")); mLineRenderer.sharedMaterial.SetColor("_Color", Color.red); 2. 해결 방법 ProjectSettings > Graph..
유니티 VS Code에서 디버깅 모드 사용하기
·
unity etc./others
유니티를 이용하여 개발을 하다보면 Debug.Log(...) 함수를 이용하여 유니티 콘솔에 디버그를 할 수 있습니다. 하지만 필요에 따라서 Visual Studio에서 이용했듯이 디버딩 모드를 이용하여 좀 더 디테일한 디버그를 할 필요가 있어 디버깅 모드를 하는 방법에 대해 공부하고, 빠르게 환경을 구축하기 위해 요약을 하였습니다. 2022년 09월 05일 기준. Unity는 2022.1.12f1 버전 기준으로 작성하였습니다. 필자가 디버깅 모드를 실행하기위해 사용한 VS Code 확장 1. Unity Asset Store에서 VSCode를 받고 설치한다(무료) VSCode | 유틸리티 도구 | Unity Asset Store Use the VSCode from dotBunny Inc. on your n..
유니티 빌트인 기능 Spline / 4 - Spline Instantiate
·
unity etc./others
✔️ 스플라인의 기능으로 Spline Instantiate가 있다. Items To Instantiate: 생성시킬 대상 프리팹을 넣는다. Instantiated Object Setup: 생성된 오브젝트의 축을 설정하는 기능. Spline Animate와 동일하다. 유니티 빌트인 기능 Spline / 2 - Spline Animate ✔️ 스플라인의 기능으로 Spline Animate가 있다. ✔️ Spline Animate의 인스펙터를 보자. Spline: 오브젝트가 따라다닐 스플라인을 할당한다. ⭐ Animated Object Setup Up Axis: 오브젝트의 Up 방향 축을 설.. bonnate.tistory.com Instantiation > Instantiated Method Instanti..
유니티 빌트인 기능 Spline / 3 - Spline Extrude
·
unity etc./others
✔️ 스플라인의 기능으로 Spline Extrude가 있다. 3ds Max의 Extrude와 같은 느낌이다. Geometry Geometry > Radius: 스플라인 경로의 중심으로부터 반지름 값으로 두께를 설정한다. Geometry > Profile Edges: 단면의 Vertex 수를 지정한다. 최소 3개(삼각형)이고, 최대는 제한이 없어보이지만 성능을 위해 적절한 값으로 지정해야할것같다. Geometry > Segments Per Unit: 옆면의 Vertex 수를 지정한다. 값이 높을수록 도넛 모양으로 매끄럽게 바뀐다. Geometry > Cap Ends: 끝면의 단면을 채우는지 설정한다. 3ds Max와 같은 Cap이다. Advanced > Range & Percentage: from(시작점)..
유니티 빌트인 기능 Spline / 2 - Spline Animate
·
unity etc./others
✔️ 스플라인의 기능으로 Spline Animate가 있다. ✔️ Spline Animate의 인스펙터를 보자. Spline: 오브젝트가 따라다닐 스플라인을 할당한다. ⭐ Animated Object Setup Up Axis: 오브젝트의 Up 방향 축을 설정한다. Forward Axis: 오브젝트의 Forward 방향 축을 설정한다. Align To: 오브젝트의 회전축을 타입에 맞게 설정한다. Align To > None: 오브젝트 현재 회전축을 그대로 유지하며 변동시키지 않는다. ⭐ Align To > Spline Element: Forward 축을 스플라인의 경로에 맞게 바라보게 한다. Align To > Spline Object: 스플라인 오브젝트의 방향과 같게 설정합니다. > 이전 오브젝트의 방향..
유니티 빌트인 기능 Spline / 1
·
unity etc./others
Getting started with Splines | Splines | 1.0.1 Getting started with Splines Creating the Asset To create a spline game object there are three different methods. In the Unity menu, go to GameObject > Spline > New Spline. In the Hierarchy window. RMB > Spline > New Spline In the Inspector window, on a Ga docs.unity3d.com ✔️ 스플라인을 생성하자. > DrawSpline Tool로 직접 내가 곡선을 그릴 수 있다. > Square과 Circle은 각 정사각형..
유니티 UI(Button)과 RayCast가 동시에 일어나는 문제 해결
·
unity etc./others
유니티 씬 내에서 RayCast를 이용한 상호작용 기능이 있을때, UI 버튼을 누르면 그 아래에도 Ray가 적용되어 의도하지 않은 결과가 나타난 문제가 발생하였습니다. 이것을 검색해보니 적절한 자료가 있었습니다. Block raycast through the UI public Camera cam; public NavMeshAgent agent; // Update is called once per frame public void MoveToLocation() { Ray ray =... forum.unity.com UI를 뚫고 레이캐스트가 진행되는 같은 문제로 질문이 있었는데, 해당 답변들 중 다음의 코드를 레이캐스트 함수에 넣으라고 있었네요. if(EventSystem.current.IsPointerOve..
유니티 벡터 연산의 이해
·
unity etc./others
벡터 연산 이해 - Unity 매뉴얼 벡터 연산은 3D 그래픽스, 물리 연산 및 애니메이션에 있어 핵심적이며 Unity를 최대한 활용하기 위해서는 벡터 연산을 깊이 이해하는 것이 유용합니다. 여기서는 주 연산 및 유용하게 사용할 수 docs.unity3d.com 두개의 위치 벡터에서 바라보는 방향을 구하기 a에서의 b(a가 바라보는 b)의 방향을 구하기 위해서는 b-a 내적 (Dot)은 같은 방향이면 1보다 크고, 서로 반대방향이면 음수의 값이다. Unity Vector3.Dot, what? The Vector3.Dot() function returns the dot product of two vectors. “What?” you might be asking yourself. Let’s take a lo..
유니티 WebGL 로드 화면 바꾸기
·
unity etc./others
WebGL로 빌드를 하면 유니티에서 제공하는 기본적인 로딩바(콘텐츠 다운로드 바)가 보여집니다. 이것을 간단하고 쉽게 설정할 수 있습니다. 유니티 안에서 설정하는것이 아닌, 빌드 후 CSS를 이용하여 설정하는데, 관련지식 없이도 간단한 설정이 가능합니다. 위 폴더의 이미지들을 같은 이름의 다른 이미지로 대체하고, style.css에서 간단히 수정하면 끝난다. 위 스크립트에서 수정할것은 width와 height들이다. 주석처리로 되어있는 코드의 다음 줄에서 변경한 이미지들의 크기를 적어주면 된다. 이미지가 너무크면 적절하지 못하고 최대 1000px정도가 적당해보인다. 이미지들을 같은 이름으로 덮어쓰기하고, 해당 이미지의 크기(width, height)를 style.css에서 크기값만 변경해주었다. 로딩바는..
유니티 WebGL 빌드 용량 최적화를 위한 로그 확인
·
unity etc./others
이번 프로젝트에서 WebGL로 배포를 하는데, 가장 큰 이유로 편리한 접근성을 강조하고 있습니다. WebGL은 별도의 프로그램 설치 없이 웹 주소를 통해 바로 접속하고 로딩 후 콘텐츠를 즐길 수 있도록 하는데, 빌드의 크기가 너무 커 모든 데이터를 다운로드받는데 시간이 오래걸리면 로딩을 기다리지 못하고 이탈하는 사람이 생길 수 있기에 빌드 용량을 최적화 해야한다고 생각했습니다. 최적화 전 빌드용량은 약 500MB입니다. 클라이언트에 설치하는 프로그램이면 작은 용량으로 생각할 수 있으나, 5MB/s의 다운로드속도로 계산하면 약 100초, 1분이 넘게 걸리는 로딩시간으로 제약이 충분히 있어 보입니다. 1. 빌드 로그로 병목현상 확인하기 > 특정한 파일이 용량이 큰지 확인할 수 있습니다. 콘솔창에서 Open ..
유니티 WebGL 빌드 로컬에서 실행하기 / Apache 구축
·
unity etc./others
유니티에서 WebGL 빌드를 테스트하기위해 로컬로 실행하는 간단한 방법은 unity 에디터 내에서 Ctrl+B (빌드 후 시작)옵션을 통해 확인할 수 있습니다. 하지만 css나 html을 수정하여 실행하거나, 내부 네트워크에 있는 다른(직원이나 등등..) 분들에게 빌드를 보내고, 확인하기 위해서는 html을 실행하기 위한 서버를 간단히 구축하고 이를 배포하는 방식으로 보여줄 수 있어야 합니다. 1. 아파치 다운로드 및 설치 Apache VS16 binaries and modules download www.apachelounge.com 아파치를 다운로드 하고 설치합니다. 아파치 압축 파일을 다운로드받고 압축해제를 해줍니다. 압축해제한 아파치 폴더를 C:/에 위치합니다. C:\Apache24\conf\htt..
유니티 대사관리 json, 말풍선, 텍스트 천천히 출력, 서서히 사라지기
·
unity etc./others
시험을 마치고 이어서 개인개발에 힘쓰자.... https://assetstore.unity.com/packages/tools/input-management/json-net-for-unity-11347 JSON .NET For Unity | 입출력 관리 | Unity Asset Store Get the JSON .NET For Unity package from parentElement, LLC and speed up your game development process. Find this & other 입출력 관리 options on the Unity Asset Store. assetstore.unity.com https://shancarter.github.io/mr-data-converter/ Mr. D..
bonnate
'unity etc./others' 카테고리의 글 목록