본문 바로가기

Unity

유니티(Unity) - 클릭 이벤트 유니티 2d나 3d에서 오브젝트에 간편하게 클릭 처리를 할 수 있는 클릭 이벤트에 대해 알아보겠습니다.  우선 레이어(Layers)를 하나 추가해 주세요 아래 이미지처럼 "Test"라는 레이어를 추가했습니다. 그리고 카메라에 Physics Raycaster Component를 추가해 줍니다. Event Mask에 위에서 새롭게 추가한 Test 레이어를 선택해 주세요. 클릭 처리를 하고 싶은 오브젝트를 하나 생성해 주시고해당 오브젝트의 레이어를 Test로 변경합니다.ClickObject.cs를 해당 오브젝트에 추가해 줍니다. using UnityEngine;using UnityEngine.EventSystems;public class ClickObject : MonoBehaviour, IPointerCli.. 더보기
유니티(Unity) - 글자 타이핑 효과(Typing) 우선 Canvas에 테스트를 위한 Text UI와 Button을 하나씩 만들었습니다. 둘 다 TextMeshPro를 사용하고 있습니다. 화면에 배치는 대충 이렇게 했습니다. Text의 정렬은 중앙으로 잡아 주었습니다. Button에 Typing.cs 스크립트를 넣고 Button 이벤트에 위 이미지처럼 TypingButton을 연결시켜 줍니다. using System.Collections; using UnityEngine; using TMPro; public class Typing : MonoBehaviour { [Header("Text UI")] public TextMeshProUGUI textUI; [Header("타이핑 지연 시간")] public float delayTime; IEnumerator .. 더보기
유니티 (Unity) - 확률 뽑기(생성) https://docs.unity3d.com/kr/2019.4/Manual/RandomNumbers.html 랜덤 게임플레이 요소 추가 - Unity 매뉴얼 여러 게임에서 임의로 선택되는 항목 및 값은 중요합니다. 이 섹션에서는 Unity에 내장된 랜덤 함수를 사용하여 일반적인 게임 역학을 구현하는 방법에 대해 알아봅니다. docs.unity3d.com 유니티에서 제공해 주는 확률 코드를 이용한 뽑기 및 기타 등등 여러 곳에서 사용할 수 있는 랜덤 확률 코드에 대해 알아보겠습니다. 코드만 복사 붙여 넣기 해서 사용하는 것보단 내용을 알고 사용하는 게 더 도움이 되겠죠? public class RandomTest : MonoBehaviour { [Header("확률 설정")] public float[] p.. 더보기
유니티(Unity) - 인스펙트 리스트 오류 (Inspector) 유니티 특정 버전에서 위 이미지처럼 인스펙터 창의 Serializable List 목록의 리스트 0번이 겹쳐 보이는 버그가 있습니다. 몇 개의 리스트를 사용하던 0번 목록이 겹치는 버그입니다. 해결 방법은 따로 없는 것 같습니다. 특정 버전에서 이런 문제가 발생하기 때문에 문제가 없는 버전으로 설치하는 방법뿐인 것 같습니다. 제가 사용했던 2021 버전 중 21.2.8 은 문제가 없었으며 그 이상 에선 다 겹치는 문제가 나타나더군요. 그리고 오늘 날짜 (6월 25일)의 최신 버전인 21.3.5에선 문제가 없었습니다. 아래 사이트에서 확인해 보시고 참고들 하세요. https://issuetracker.unity3d.com/issues/scriptableobject-with-an-array-of-serial.. 더보기
유니티(Unity) - 간단한 안개 효과 (Fog) 모바일 게임에서 사용하기 좋을만한 안개 효과에 대해 알아보겠습니다. 위 이미지처럼 지형이 있다고 가정하고 그 바탕에 안개로 사용될 Plane을 하나 만들어 줍니다. 위 이미지처럼 안개가 적용될 Plane을 만든 후 새로운 Material을 하나 생성합니다. URP를 사용한다면 Universal Render Pipeline / Particles / Unlit의 Material을 아니면 Particles / Standard Unlit의 Material을 생성합니다. Material의 Options 중 Surface Type을 Transparent로 적용해 주시고 Soft Particles를 체크하신 후 Near와 Far의 값을 조정해 주세요. 그리고 안개용으로 만들어 둔 Plane에 Material을 적용해.. 더보기
유니티 (Unity) - 게임에 다중 언어 (Localization) 적용하기 유니티에서 제공해 주는 다중언어 시스템을 이용한 게임 적용 방법을 알아보겠습니다. "사용된 유니티 버전은 2021.3 입니다. 버전에 따라 조금씩 차이가 있을 수 있습니다." 우선 Package Manager에서 Localization을 설치해 주세요. Project 창에서 "Language" 폴더를 하나 만들어 줍니다. (폴더의 이름은 다른 것으로 하셔도 됩니다.) Project Settings 창에서 Localization > Create를 클릭합니다. Create를 클릭하신 후 앞에 만들어 두었던 "Language" 폴더를 선택 후 저장. 폴더 저장 후 화면이 위와 같이 변경되면 Locale Generator를 클릭해 줍니다. 그럼 새창이 나오면서 게임에 적용될 언어를 선택할 수 있습니다. 우선 테.. 더보기
유니티 - CustomEditor 활용 (Inspector 꾸미기) 유니티에서 아이템이나 무기 등의 설정값으로 ScriptableObject를 사용하면서 해당 아이템이나 무기 등의 이미지를 상단에 표시해 주는 기능을 CustomEditor를 이용해 꾸며 보겠습니다. (아래 이미지 참조) 우선 사용자의 ScriptableObject 가 있을 겁니다. (아래 소스 참조) [CreateAssetMenu(menuName = "ScriptableObjects/WeaponValue")] public class WeaponValue : ScriptableObject { [Header("이름")] public string weaponName; [Header("이미지")] public Sprite weaponImage; [Header("파워")] public float Damage; [.. 더보기
유니티 - 커스텀 에디터 (Custom Editor) 커스텀 에디터 기능을 이용한 ScriptableObject 생성을 조금 더 편하게 도와줄 에디터를 만들어 볼까 합니다. 유튜브 AdamCyounis를 보다 편할 것 같아 만들어 보았습니다. https://www.youtube.com/channel/UC08QfQDLAd9D7aYPFgBUIng AdamCYounis Catch me live on twitch: Mon, Tues, Wednesday and Fri 1-6pm AEST. Twitch: http://twitch.tv/adamcyounis Twitter: http://twitter.com/adamcyounis Discord: https://discord.gg/9WkRG7s Become a Patron at https://www.patreon.com/a.. 더보기
유니티 - 싱글톤 패턴(Singleton) 싱글톤 패턴은 가장 많이 사용하는 기본 패턴이니 따로 설명이 필요 없을 것 같습니다. 바로 간편하게 적용할 수 있는 코드로 넘어가 보겠습니다. using UnityEngine; public class Singleton : MonoBehaviour where T : MonoBehaviour { public static T instance {get; private set;} protected virtual void Awake() { if (instance == null) { instance = (T)FindObjectOfType(typeof(T)); DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } } } protected virtual void.. 더보기
나무 소스 - 3D Low Poly 게임에 사용하려고 만든 나무 소스입니다. 필요하신 분들은 사용하세요. Tree.zip -> 블렌더 파일 및 재질 소스가 들어 있습니다. 나뭇잎. zip -> 나뭇잎을 제작할 때 사용한 포토샵 소스입니다. 처음 사용하실 때 이런 화면이 보일 겁니다. Tree.zip을 압축을 푸시면 나무에 관련된 재질들이 있는데 압축을 푼 폴더에 맞게 재질을 다시 적용해 주시면 됩니다. 폴더 아이콘을 누르신 후 압축을 푼 폴더에서 현재 창의 재질명과 같은 재질을 다시 지정해 주시면 됩니다. 재질 설정을 다 해 주셨다면 3D 뷰에서 나뭇잎을 선택하신 후 오른쪽 재질 중 Style 1 ~ 5번 중 하나를 선택하시면 나뭇잎 모양을 바꿀 수 있습니다. (아래 이미지 참조) 하나의 나무에 여러 나뭇잎 재질을 사용해서 분위기에 맞는 .. 더보기