[ Game engine ]

728x90
Animator 파라미터Float: 실수형 값Int: 정수형 값Bool: 참/거짓 값Trigger: 단발성 이벤트예시isRunning (Bool) → 달리기 상태Speed (Float) → 이동 속도Jump (Trigger) → 점프 이벤트  전이 조건(Transition) 설정Make Transition조건 설정Transition을 선택한 뒤 Inspector 창에서 Conditions 섹션 추가앞서 정의한 파라미터를 조건으로 설정 예시 조건Speed > 0.1 → Idle에서 Run으로 전환isRunning == true → Walk에서 Run으로 전환  기능 정의 (스크립트로 제어)스크립트에서 애니메이터를 불러오기 Animator 컴포넌트 연결 스크립트를 컴포넌트에 추가한 후 코드를 작성한다.// ..
2D 픽셀 기반 게임을 제작할 때 타일맵을 활용하면 작업을 효율적으로 할 수 있다,   Window > 2D > Tile Palette 경로에서 타일 팔레트 창을 열어준다.    새 그리드를 생성해준 뒤 스프라이트를 드래그해서 올려놓으면 브러쉬처럼 사용할 수 있다. 브러쉬를 눌러서 게임뷰에서 그리고 지우개를 눌러서 게임뷰에서 불필요한 이미지는 지울 수 있다.     브러쉬 크기가 그리드에 맞지 않을 경우 스프라이트 이미지 크기에 맞게 Pixels Per Unit을 수정해주면 된다.
벨트스크롤 게임에서 활용할 수 있는 이미지 스크롤 스크립트 스크롤 메커니즘배경을 왼쪽으로 계속 이동시키기transform.position += Vector3.left * moveSpeed * Time.deltaTime;Time.deltaTime를 사용하여 프레임 속도에 관계없이 부드럽게 이동한다. 위치 초기화if (transform.position.x 배경이 -posX보다 왼쪽으로 이동했는지 확인한다. 오른쪽 가장자리(posX)로 위치를 초기화하여 루프 효과를 만든다. using System.Collections;using System.Collections.Generic;using UnityEngine;public class BackgroundScroll : MonoBehaviour{ [Serial..
[SerializeField]유니티에서 Private 변수를 인스펙터 창에서 노출할 수 있도록 하는 속성이다.using System.Collections;using System.Collections.Generic;using UnityEngine;public class test01 : MonoBehaviour{ [SerializeField] private int health = 100; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { }}// private 접근 제한자: 변수는 클래스 ..
프로젝트 폴더 > ProjectSettings에 ProjectVersion라는 텍스트 파일이 하나 있는데이 파일에서 해당 프로젝트의 버전을 확인할 수 있다.
유니티에서 알파 표현에 있어서 리니어와 감마 모드의 차이는 색상과 투명도(알파) 처리가 달라지는 것이다.이 차이는 렌더링 파이프라인과 색상 데이터가 처리되는 방식 때문에 발생한다.감마(Gamma) 모드색상 값이 인간의 눈에 보이는 방식과 유사하게 조정되는데 이로 인해 색상이 밝아 보이며, 알파 블렌딩도 이를 기준으로 계산된다.하지만, 조명이나 그림자가 많이 들어가는 씬에서는 정확한 표현이 어려울 수 있다.감마 모드에서는 알파 블렌딩이 비선형 방식으로 처리되기 때문에, 일부 경우 부자연스러운 투명도 표현이 나올 수 있다.리니어(Linear) 모드색상 값이 물리적으로 정확하게 처리되며, 조명과 그림자 계산이 더욱 자연스러워진다.알파 블렌딩도 선형 방식으로 처리되어 투명도 표현이 더 정확하고 부드럽다.일반적으..
DOTween Visual Manager는 Unity에서 DOTween을 사용해 애니메이션을 설정할 수 있게 해주는 컴포넌트이다.OnEnable과 OnDisable은 DOTween Visual Manager가 게임 오브젝트의 활성화 상태에 따라 자동으로 애니메이션을 시작하고 종료하게 해주는 메서드.1. OnEnable이 메서드는 게임 오브젝트가 활성화될 때 호출DOTween Visual Manager에서는 이 시점에 DOTween으로 설정된 애니메이션이 자동으로 시작예를 들어, UI가 활성화될 때 슬라이드 인 애니메이션을 적용하고 싶다면, OnEnable에 해당 애니메이션을 설정해두면 UI가 활성화되면서 자동으로 재생2. OnDisable반대로, 게임 오브젝트가 비활성화될 때 호출되는 메서드DOTween..
ParticleEffectForUGUIUnity UGUI에 파티클 효과를 추가하기 위한 Unity 플러그인기본적으로 3D 공간에서 작동하는 Unity의 파티클 시스템을 2D UI 환경에서도 사용할 수 있게 해준다.   주요 기능UI와 통합파티클 효과를 UI 요소 위에 렌더링할 수 있다. 이를 통해 게임 내 UI에 다양한 시각적 효과를 추가할 수 있다.2D 공간일반적인 파티클 시스템은 3D 공간을 기반으로 하지만, 이 플러그인은 2D 공간에서도 효과적으로 파티클을 사용할 수 있게 해준다. 따라서 UI 레이아웃을 유지하면서 시각적 효과를 추가할 수 있다.마스크 지원마스킹 기능을 지원하여 파티클이 특정 UI 영역에서만 보이도록 제어할 수 있다.이를 통해 UI의 특정 부분에서만 파티클 효과를 보여줄 수 있습니다..
⛔ Build/buildhtml.framework.js.br 오류Unable to parse Build/buildhtml.framework.js.br! This can happen if build compression was enabled but web server hosting the content was misconfigured to not serve the file with HTTP Response Header "Content-Encoding: br" present. Check browser Console and Devtools Network tab to debug. 구문 분석 오류라고 하는데알아보니 Decompression Fallback을 체크해주면 해결된대서 체크하고 다시 빌드해보니... 아래..
Enter Play Mode Settings일부 과정을 생략해서 Play Mode로 진입하는 속도를 향상시켜주는 기술 Edit > Project Settings > Editor 에서 선택
유니티 렌더링 파이프라인(built-in, SRP, URP, HDRP)Render Pipelines렌더 파이프라인은 씬의 내용들을 취하여 컬링(culling), 렌더링(rendering), 포스트프로세싱(post-processing)등의 작업을 수행하고 그것을 스크린에 표시하는 역할을한다. 유니티는 몇가지 서로 다른 렌더 파이프라인을 제공한다(built-in, URP, HDRP)렌더 파이프라인은 모두 다른 기능과 특성을 가지고있다. 사용자는 개발의 초기 단계에서 프로젝트(게임, 어플리케이션, 플랫폼)에 적절한 렌더 파이프라인을 선택하는 것이 중요하다. (프로젝트 중간에 렌더 파이프라인을 다른것으로 변경하는것을 권장하지않는다.)https://docs.unity3d.com/Manual/render-pipel..
유니티상에서 애니메이션이나 트윈으로 파티클 on/off를 제어할 때 작동 중이던 파티클이 아닌 새로 시작되는 파티클을 사용하려면 Prewarm(예열)을 꺼주면 된다. 작동중이던 파티클과 서서히 시작되는 파티클. 파티클 시스템 맨 위에 있다. 가끔 위치를 까먹어서 메모함.
⛔ Starting a Gradle Daemon, 1 incompatible and 2 stopped Daemons could not be reused, use -- status for details Exception while marshalling C:|Program Files|Unity|Hub\Editor|2022.3.22f1\Editor\Data|PlaybackEngines\AndroidPlayer|SDK\build-tools\32.0.0\package.ml. ⛔ Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 ⛔ CommandInvokationFailure: Gradle build failed. ⛔ Build completed with a result o..
시뮬레이터에서 정상적으로 나오는 테스트 광고가 폰에서만 안보이길래 이런저런 방법을 시도해봤는데 혹시나 해서 보니 애드가드가 켜져있었다. 어이가 없었다... 광고가 안나오면 디바이스 애드가드 체크해보기...
애드몹으로 광고를 사용하기 위해서는 부정 클릭으로 인한 계정 정지 등의 불이익 방지를 위해 테스트 기기를 설정해줘야 한다. 구글 애드몹 사이트 설정 페이지로 이동한다. Google AdMob: 모바일 앱 수익 창출 인앱 광고를 사용하여 모바일 앱에서 더 많은 수익을 창출하고, 사용이 간편한 도구를 통해 유용한 분석 정보를 얻고 앱을 성장시켜 보세요. admob.google.com 테스트 기기 추가를 누른 뒤 기기 이름과 플랫폼, 광고 ID/IDFA를 입력해주고 광고 검사기를 선택해준다. 광고 ID는 테스트 폰에서 설정에 들어가 '광고'라고 검색하면 바로 찾을 수 있다. 애드몹 고객센터에 더 자세한 정보가 나와 있음. 테스트 기기 설정 - Google AdMob 고객센터 도움이 되었나요? 어떻게 하면 개선..
⛔오류 이 버전은 Google Play 64비트 요구사항을 준수하지 않습니다. 프로젝트를 구글 플레이 콘솔에 업로드할 때 64비트 지원을 하지 않으면 아래 오류로 플레이스토어에 올릴 수 없다. 유니티에서 64비트 버전을 지원하려면 IL2CPP와 ARM64를 사용해야 한다. 따라서 아래와 같이 수정이 필요함. 💡Player > Scripting Backend > Mono를 IL2CPP로 변경 > ARM64 체크
유니티 실행중 Enter Safe Mode 화면이 뜬 후 정상적으로 실행이 되지 않을 경우 아래와 같은 방법으로 해결할 수 있다.    프로젝트 실행 후 Console에서 오류가 일어난 경로를 확인한다.경로에 Library가 보일 경우 프로젝트 파일 안에서 Library폴더를 통으로 삭제한 뒤 유니티를 재실행 시킨다.    Library폴더는 유니티 실행시 자동으로 다시 생성되기 때문에 삭제해도 무방하다.
Can not sign the application 빌드할 때 해당 경고 문구가 나온다면 아래의 방법으로 해결할 수 있습니다. 해결 방법 File > Build Settings... > Player Settings... Player > Publishing Settings에 만들어뒀던 keystore Password 값을 입력해주면 해결할 수 있습니다.
aab / apk 유니티로 안드로이드 용 실행 파일을 빌드할 때 두가지 옵션을 선택할 수 있습니다. apk - 안드로이드 폰에 바로 옮겨서 테스트할 수 있음 aab - 구글플레이스토어에 등록하기 위해 필요한 파일 빌드 방법 유니티에서 빌드할 때 Build App Bundle (Google Play) 옵션을 체크하면 abb 파일을 빌드할 수 있고 체크하지 않으면 apk 파일을 빌드할 수 있습니다.
서론 로고에 빛이 지나가는 애니메이션을 추가해주기 위해 마스크를 적용하고 애니메이션을 추가했습니다. 1. 계층 구조 로고 이미지 안에 그라데이션 이미지를 종속시키고 그라데이션 이동을 위한 Move 오브젝트를 사이에 따로 추가했습니다. 2. 로고 이미지 추가 Logo에 로고 이미지, DOTween Scale 애니메이션, Mask 컴포넌트를 추가합니다. Scale 애니메이션 Loops에 -1을 넣어 반복되게 만들어주고 Type을 Yoyo를 넣고 재생/역재생이 반복되게 만들어줍니다. 3. 이동하기 추가 Move에 DOTween Move 애니메이션을 추가합니다. 좌표를 X -1000정도의 위치에 놓고 TO에 1000정도의 값을 주면 -1000에서 +1000좌표까지 서서히 이동하게 됩니다. Loops에 -1을 넣..
1. 스크립트 작성 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using TMPro; public class TMProHyperLink : MonoBehaviour, IPointerClickHandler { TextMeshProUGUI m_TextMeshPro; Camera m_Camera; Canvas m_Canvas; void Start() { m_Camera = Camera.main; m_Canvas = gameObject.GetComponentInParent(); if (m_Canvas.renderMode == RenderMode.ScreenS..
서론 수정을 정신없이 하다보면 플레이 상태에서 수정하게 되는 불상사가 일어나는 경우가 있습니다. 테스트만 할 때는 플레이 상태로 수정해도 되지만 저장이 필요할 때는 플레이 상태가 아닐때 수정을 해야하는데 손쉽게 구분을 해주는 방법이 있습니다. 세팅 변경 Unity > Settings에 들어가면 Colors에 Playmode tint가 있는데 CCCCCC로 되어있는 회색을 원하는 색상으로 수정해주면 됩니다. 확인 하기 그럼 플레이를 누를 경우 UI에 컬러 틴트가 적용되어 플레이 상태라는 것을 쉽게 인지할 수 있게 됩니다.
서론 수정 중인 프로젝트에 일시정지를 구현해주기 위해 버튼과 스크립트를 추가했습니다. 구현할 것 이미지 - 일시정지 버튼, 계속 하기 버튼 기능 - 게임 일시정지, 계속 하기 버튼 토글 스크립트 public class Paused : MonoBehaviour { bool IsPause; void Start () { IsPause = false; } void Update () { } public void ButtonPause(){ Time.timeScale = 0; IsPause = true; } public void Buttonplay(){ Time.timeScale = 1; IsPause = false; } public void PausedSetActiveFalse(){ gameObject.SetAct..
해상도 대응을 해줘야 하는 이유 기기 상하단에 아래 이미지 처럼 UI가 들어갈 경우 게임 뷰에서는 정상적으로 보이는 반면, 시뮬레이터 뷰에서는 노치 영역(카메라, 아이폰 홈 바)까지 UI가 들어가게 된다. 이 영역 내부에만 UI가 그려지게끔 만들어주면 되는데 SafeArea 스크립트를 사용하면 간단히 해결할 수 있다. SafeArea 스크립트 using System.Collections; using System.Collections.Generic; using UnityEngine; public class SafeArea : MonoBehaviour { RectTransform _rectTransform; Rect _safeArea; Vector2 _minAnchor; Vector2 _maxAnchor; ..
프리팹(오브젝트) 만들기 메인 로비에 붙여서 사용할 임시 로딩 팝업을 만들기 위해 씬에 Loading 오브젝트를 하나 추가한 뒤 스크립트를 추가해줬다. 스크립트 작성 public class ObjectActiveToggle : MonoBehaviour { void Start() { Invoke("Disable", 3f); } void Disable() { gameObject.SetActive(false); } } Disable에 정해진 조건에 오브젝트가 비활성화 될 수 있게 gameObject.SetActive(false)를 작성 후 Start에 조건 Invoke("Disable", 3f)를 추가해주면 된다. 결과 3초 뒤 Loading 오브젝트가 비활성화 되는 결과를 얻을 수 있다. 참고 https:/..
TMP 폰트가 두 개 이상 필요한 경우 경우에 따라 게임에서 영문 외에 한국어 일본어 중국어 태국어 등 다양한 언어를 지원해야 할 상황이 생기는데 아래의 방법을 사용하면 언어 별로 다른 폰트를 섞어서 사용할 수 있습니다. 메인 폰트 생성하기 메인으로 사용할 영문 폰트를 하나 생성해줍니다. https://gameuiux.tistory.com/57 [Unity/유니티] TMP(TextMeshPro) 영문 폰트 추가하기 프로젝트에 사용할 폰트 추가 Assets > TextMesh Pro > Fonts 폴더 안에 사용할 폰트 파일을 추가합니다. 폰트 TMP용도로 만들기 폰트 애셋 크리에이터 창을 열어줍니다. Window > TextMeshPro > Font Asset Creator So gameuiux.tist..
폰트를 추가하는 방식 추가 방식은 영어와 동일합니다. https://gameuiux.tistory.com/57 [Unity/유니티] TMP(TextMeshPro) 영문 폰트 추가하기 프로젝트에 사용할 폰트 추가 Assets > TextMesh Pro > Fonts 폴더 안에 사용할 폰트 파일을 추가합니다. 폰트 TMP용도로 만들기 폰트 애셋 크리에이터 창을 열어줍니다. Window > TextMeshPro > Font Asset Creator So gameuiux.tistory.com Character Sequence 한글 유니코드 추가하기 폰트 애셋 크리에이터 창에서 Character Sequence 안에 아래의 숫자를 입력해줍니다. 44032-55203,12593-12643,8200-9900 한글 범..
프로젝트에 사용할 폰트 추가 Assets > TextMesh Pro > Fonts 폴더 안에 사용할 폰트 파일을 추가합니다. 폰트 TMP용도로 만들기 폰트 애셋 크리에이터 창을 열어줍니다. Window > TextMeshPro > Font Asset Creator Source Font File에 추가한 폰트를 드래그합니다. 나머지 값들은 필요에 따라 수정합니다. Sampling Point Size : Auto 사이즈 자동 / Custom 사이즈 지정 Padding : 글자 간격(패딩) Packing Method : Fast Atlas Resolution : 아틀라스 사이즈 Character Set : Custom Range Character Sequence : 포함할 문자의 유니코드(Unicode) > ..
1. 빌드세팅에 사용할 씬 추가하기 0번 Splash - 플레이할 때 나오는 시작 화면 1번 MainLobby - 시작 화면에서 아무 곳이나 누를 경우 이동하는 메인 로비 빌드세팅 단축키 Ctrl+Shift+B 씬을 드래그해서 추가하면 된다. 2. 스크립트 작성 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class SceneLoadManager : MonoBehaviour { public void SceneChange() { SceneManager.LoadScene("MainLobby"); } } 새 스크립트를 추가한 뒤 4번 줄에 ..
유니티 프로젝트를 커밋할 때 불필요한 임시 파일이 잡히는 경우가 있는데 아래와 같은 방법으로 해결할 수 있다. 1. TortoiseSVN 저장소 우클릭 TortoiseSVN > Properties New > Other 클릭 svn:ignore 선택 아래 리스트를 모두 추가하면 된다. Library Temp obj *.DotSettings *.csproj *.pidb *.sln *.suo *.unityproj *.user *.userprefs 추가 후 OK 클릭 2. SnailSVN Lite 같은 방식으로 SVN Settings > Ignores에 위의 리스트를 추가해주면 된다.
728x90
gameuiux
'[ Game engine ]' 카테고리의 글 목록