예전에 번역을 도와주는 에셋에 대해 소개드린적이 있었습니다. 설명이 부족한 것 같아 I2Localization 에셋 사용방법에 대해 조금씩 올려보고자 합니다. 유니티 가장 강력한 번역도구 I2 Localization을 소개합니다!I2 Localization란? Unity에서 사용할 수 있는 번역 시스템입니다. UI, 2D, TextMesh Pro와 같은 주요 컴포넌트들에 사용가능하며 개발자가 다양한 플랫폼(PC, 모바일 등)에서 로컬화(번역)된 경험을 제공할wlsdn629.tistory.com 이번 포스팅에서는 Google Spreadsheet 연동하는 방법에 대해서 알아보고자 합니다.Google Spreadsheet 연동하기 Source 컴포넌트를 보면 SpreadSheet 탭이 존재합니다. Spre..
삼각형 그래프를 그리고 싶었는데 LineRender는 잘 안되고...어쩔 수 없이 Mesh를 활용해서 삼각형 그래프를 그려보는 방식으로 시도해봤습니다. 결과는 아래 움짤과 같이 잘 작동하나 코드에 문제가 있을 수 있으니.. 조심히 사용하시길 바랍니다. 코드using System.Collections.Generic;using UnityEngine;namespace IslandMonkey{ [RequireComponent(typeof(MeshFilter))] [RequireComponent(typeof(MeshRenderer))]#if UNITY_EDITOR [ExecuteAlways]#endif public class PieChartOutline : MonoBehaviour {..
RefreshShownValue란?RefreshShownValue() 함수는 'TMP_Dropdown 컴포넌트'에서 사용되는 함수입니다. RefreshShownValue 함수는 드롭다운 메뉴 값을 갱신하여 현재 선택된 값을 표시합니다. 이 함수를 호출하면 드롭다운의 표시가 변경되어 현재 선택된 값을 나타낼 수 있습니다. 사용 예를 들어. 사용자가 게임 설정에서 그래픽 품질을 변경하는 드롭다운 메뉴가 있다고 가정해 보겠습니다. 사용자가 새로운 품질 수준을 선택하면 이를 즉시 반영하여 드롭다운 버튼에 표시할 때 사용하면 됩니다.
결과부터 보여드리자면 아래 사이트에 업로드해논 작품입니다! TrueOrTruth by JinwooLooking for sad memories of the pastkimjinwoo.itch.io 이번 게임잼 컨셉은 JAMAKERS, 맛있는 게임을 만들자 입니다GameMakers의 슬로건을 아시나요 ? ‘Thought becomes Reality’ 회원분들이 상상하시는 게임을 현실화 하는 것입니다. 슬로건에 맞게 JAMAKERS 게임잼 주제는 바로, ‘꿈과 현실’ 입니다. JamMakers의 일정은 위 사진과 같이 진행되었습니다.저는... 2일차 오후부터 참여할 수 밖에 없어가지고.. 팀원들에게 양해를 구하고 2일차 오후부터 참여했습니다. 팀 빌딩은 위와 같이 진행되었습니다. 모두 GameMakers 8..
where 키워드란? 제네릭 프로그래밍에서 중요한 역할을 하며, 제네릭 타입에 대한 제약 조건을 지정할 때 사용됩니다. where키워드를 사용함으로써 컴파일 타임에 타입의 특정 특성을 보장할 수 있게 해줍니다. 예를 들어, 특정 타입이 반드시 클래스여야 하거나 특정 인터페이스를 구현해야 한다는 등의 조건을 걸 수 있습니다.where 키워드 예시 형식 설명 예시 where T : class제네릭 타입 매개변수가 클래스여야 함where T : classwhere T : struct제네릭 타입 매개변수가 구조체여야 함where T : structwhere T : new()제네릭 타입 매개변수가 매개변수가 없는 기본 생성자를 가져야 함where T : new()where T : SomeBaseClass제..
접근 제어자 기호 설명 Public+클래스 외부에서도 접근 가능Private-클래스 내부에서만 접근 가능Protected#클래스 및 서브클래스에서 접근 가능Default (Package)~동일한 패키지 내에서만 접근 가능Static_클래스의 인스턴스가 아닌 클래스 자체에 속함
팩토리 패턴은 객체 생성을 담당하는 팩토리 클래스를 도입하여 객체 생성 로직을 캡슐화하는 디자인 패턴입니다. 팩토리 패턴을 사용하면 객체를 생성하는 코드를 분리하여 유연성을 높이고, 객체 생성 방식을 변경할 때 코드 수정을 최소화할 수 있습니다. 팩토리 패턴을 유니티에서 사용하는 경우, 다음과 같은 상황에서 유용합니다.동일한 객체를 반복적으로 생성해야 하는 경우객체 생성 로직을 단일 위치에 집중하여 코드를 관리하고자 하는 경우UML을 바탕으로 코드 작성해보기 제가 직접 짠거는 아니고 유니티 공식 자료에서 가져와봤습니다.저번시간에 UML 작성법을 공부했다고 저 화살표가 무엇을 의미하는지 알게 되어 뜻을 이해할 수 있게 되었습니다. Factory라는 클래스를 ConcreteFactory에서 상속을 받아 사..
여러분들은 코드를 작성하실 때 어떤 방식으로 시작하고, 끝을 맺으시나요? 저는 개발해야하는 순간이 다가오면 잠깐의 고민을 하고 바로 키보드를 두들기며 코드를 작성합니다.이 방식이 잘못되었다는 것은 아니지만, 저는 제 습관을 고치고 싶습니다. 코드를 작성하다보면 무엇을 짜고 있는지 가끔 방향을 잃을 때도 있고, 명확하지 못한 코드들이 남발하게 되며, 나중에 코드를 보게 됐을 때 기억이 나지 않는 등의 문제를 겪곤 합니다. 그래서 앞으로는 코드를 작성하기 전에 저만의 규칙을 만들어보고자 합니다. 사진의 모든 출처는 다음과 같습니다.출처 - https://velog.io/@ssuh0o0/%ED%97%B7%EA%B0%88%EB%A0%A4%EC%84%9C-%EC%A0%81%EC%96%B4%EB%86%93%EB%8..
디자인 패턴이란?디자인패턴이란 개발할 때 자주 발생하는 문제에 대한 해결책이자, 효율적이고 유연한 설계를 위한 가이드라인이라고 생각하면 됩니다. 과거 우리의 대선배님들이 직접 경험으로 쌓아온 노하우와 설계 원칙을 바탕으로 만들어졌다고 합니다. 디자인패턴은 특정 문제 상황에 대한 해결 방법을 제시하고, 재사용 가능한 형태로 만들어 설계에 적용할 수 있게 해줍니다. 이를 통해 유지보수성, 확장성, 재사용성을 향상시키고, 일관된 개발 방법론을 제공한다는 장점이 있습니다. 디자인 패턴은 보통 다음과 같은 구성 요소로 이루어져 있습니다.문제 (Problem): 디자인 패턴이 적용될 문제나 상황을 정의합니다.해결책 (Solution): 문제를 해결하기 위한 구체적인 설계 방법이나 패턴을 제시합니다.결과 (Conse..
OOP란?Object-Oriented Programming의 약자로 한글로 설명하면 객체 지향 프로그래밍이라는 뜻입니다.현실 세계의 객체를 모델링하여 소프트웨어를 개발하는 방법론입니다. 현실 세계의 객체라..?🤔객체라고 단어가 약간 이해하기 어려울 수 있습니다. 객체라는 것은 데이터와 기능을 하나의 단위로 묶은 것을 뜻합니다. 예를 들어, 김진우라는 객체가 있다고 가정하겠습니다. 김진우라는 객체는 이름은 김진우이며, 키 177, 25살, 남자라는 데이터를 가지고 있습니다.그리고 저는 밥 먹고, 걷고, 공부하는 등의 기능을 실행할 수 있습니다. 김진우라는 객체에서 데이터를 코드로 표현하면 다음과 같이 나타낼 수 있습니다.public class Person { public string Name { g..
제가 속해 있는 프로젝트 팀에는 Coda를 이용하여 프로젝트를 진행합니다.Coda에 문제점은 따로 Window앱이 없기 때문에, 항상 윈도우를 열고 진행해야 한다는 점입니다. 물론, 링크를 이용해서 파일을 만들어 바로가기 등 여러 방법으로 해결할 수 있긴 합니다만, 결국에 웹사이트가 열리면서 기존에 열려있던 윈도우 탭에 들어가서 따로 빼줘야 한다거나, 상단 북마크 등이 거슬리는 등 여러 문제가 있어 해결하기 위해서는 꽤 번거로움이 많습니다. 해당 문제들을 해결하기 위해 크롬을 이용해서 쉽게 윈도우 앱을 만드는 방법을 공유드리겠습니다.바로가기 만드는 방법 준비물은 당연히 크롬입니다. 크롬 외에는 해당 방법이 가능한지 모르겠습니다. 크롬 우측 상단에 [저장 및 공유] 탭을 누른 후 바로가기 만들기 버튼을 눌..
transform.GetSiblingIndex()란?transform.GetSiblingIndex()는 GameObject가 현재 계층 구조에서 몇 번째 위치(자식 순서)에 있는 반환해줍니다. 예를 들어, 게임 오브젝트들이 같은 부모 오브젝트 아래에 있는 경우, GetSiblingIndex()를 사용하여 해당 GameObject의 위치 순서(번호?)를 얻을 수 있습니다. GetSiblingIndex함수는 GameObject의 자식들을 정렬하는 경우에 유용합니다. 실제로 transform.GetSiblingIndex()를 사용해서 슬롯을 정렬하는 함수를 만들어봤습니다.int childIndex = transform.GetSiblingIndex();int row = childIndex / maxHorizo..
System.Obsolete란?System.Obsolete는 C#에서 제공하는 속성으로, 특정 메서드나 클래스가 더 이상 권장되지 않음을 나타내는 데 사용됩니다. System.Obsolete속성을 사용하면 해당 메서드나 클래스를 사용하는 코드가 컴파일될 때 경고 또는 오류를 생성합니다.System.Obsolete 속성은 다음과 같이 세 가지 형태로 사용할 수 있습니다.[Obsolete]: 매개변수를 사용하지 않으면 해당 메서드나 클래스를 사용하는 코드가 컴파일될 때 경고를 생성합니다.[Obsolete(string message)]: 더 이상 권장되지 않는 이유를 설명하는 메시지를 포함합니다.[Obsolete(string message, bool error)]: 불리언 값이 true로 설정되면, 해당 메서..
Scene Controller을 만들기 위해서는 Singleton과 UniTask를 사용해야 합니다. 아래 포스팅에서 '싱글톤'과 'UniTask' 사용방법을 참고해주세요. 두고두고 써먹는 싱글톤(SingleTon) 코드싱글톤 패턴이란? Unity 싱글톤 패턴은 특정 클래스가 게임 수명 기간 동안 하나의 인스턴스만 갖도록 하기 위해 Unity 게임 개발에서 일반적으로 사용되는 디자인 패턴입니다. 이 패턴은 게임 내wlsdn629.tistory.com 유니티 코루틴 대신 unitask유니티에서 unitask를 사용하기 앞서, 유니티에서 사용하는 코루틴이 무엇인지 알아야 진정한 unitask의 장점을 알 수 있습니다. 지피지기 백전불태 그렇기에 유니티에 기본적으로 내장되어 있는wlsdn629.tistor..
작업을 하다보면 하이러키창에 필요한 객체를 검색하는 경우가 종종 발생합니다.때로는 특정 컴포넌트를 가지고 있는 객체들만 필터링해서 찾고 싶은 경우가 있습니다. 이런 경우에 유용하게 사용할 수 있는 꿀팁을 알려드리겠습니다. 하이러키창의 검색란 우측에 보면 확장버튼같은게 보입니다. 그 버튼을 눌러주면 우측 사진과 같은 윈도우 창이 뜹니다. Serach 아래에 toggle버튼을 누른 후 우측 + 버튼을 눌러주고, 찾고자 하는 컴포넌트를 검색해줍니다.그럼 우측 사진처럼 씬에 해당 컴포넌트를 사용하고 있는 객체를 알려줍니다.