분류 전체보기(119)
-
UI 버튼을 동적 로딩 하는방법 (프리펩으로 생성)
UI 버튼을 동적 로딩하는 방법동적으로 생성할 UI를 프리펩으로 만들어 둔 다음에 코드를 통해서 동적 로딩하면 된다.코드[SerializeField] private GameObject buttonPrefab;List buttons = new List();public void GetMaps(){ OnDestroy(); TextAsset[] jsonFiles = Resources.LoadAll("Maps"); for (int i = 0; i ().text = json; obj.GetComponent().SetUp(json); buttons.Add(obj); }}private void OnDestroy(){ for (int i = 0; ..
2024.11.22 -
유니티 이미지타입 전환 안되는 이유 (인스펙터창 설정이 디버그로 되어 있어서 안됐다)
이미지를 jpeg타입으로다운받은 후에 유니티에 이미지를 올린후에 이미지의 Texture Type을 Default에서 Sprite로 변경하면 이미지가 Sprite타입으로 변환이 되는데 어느순간 갑자기 변환이 안되서 왜 그런지 이유를 찾아봤다.내가 시도했지만 실패한 방법들1. 이미지 지웠다 다시 유니티에 올리기2. 이미지 타입을 png타입으로 바꿔서 유니티에 올리기3. 이미지 우클릭해서 Reimport하기4. 유니티 껏다 키기5. 컴퓨터 껏다 키기6. 유니티파일에서 Library파일 지웠다 유니티 다시 실행하기해결방법그래서 전문가한테 질문해보니 인스펙터창의 설정이 Debug로 되어있으면 안되고 Normal로 되어있어야지 이미지 타입을 바꿀수 있다고 예기해 주셔서 그렇게 해보니 바로 됐다.
2024.11.21 -
화면(씬) 전환 시 자연스럽게 암전 효과를 구현하는 예제(페이드인 페이드아웃)(DOTween사용)
화면(씬) 전환 시 자연스럽게 암전 효과 넣는 순서1. Canvas를 SceneManager로 만들고 MySceneManager 스크립트를 만들어서 붙여줬다.1-1 Sort Order값을 다른 오브젝트보다 위로 둬야 한다.(나는 1로 설정해도 맨앞에 있어서 1로 설정했다.) 2. 자식으로 UI이미지를 FadeImg로 만들고 이미지의 크기를 정해준다.(나는 화면을 꽉 채울거라서 앵커를 화면전체로 해놨다.)2-1. Image에 씬이 넘어갈때 화면에 띄웠으면 좋겠는 색으로 설정하면 된다.2-2. Canvas Group를 만들어서 해당 사진과 같이 설정했다.(Canvas Group은 투명도(Alpha)뿐만 아니라 Raycast 제어 기능도 제공하는 중요한 역할을 한다.이를 통해 blocksRaycasts 값을 ..
2024.11.20 -
UI - DOTween에셋 사용해서 UI스르륵 움직이게 만들기
DOTween이란?DOTween은 Unity에서 애니메이션 및 트윈(Tween)을 간단하고 효율적으로 구현할 수 있는 강력한 애셋이다. 트윈이란 특정 값(위치, 크기, 색상 등)을 일정 시간에 걸쳐 자연스럽게 변경하는 것을 의미한다.Unity에셋에서 DOTween을 가져와서 사용하면 된다.DOTween을 사용하는 이유1. UI 요소를 자연스럽게 움직이거나 페이드 효과를 추가할 때 사용 (페이드 효과 : 오브젝트나 화면의 투명도(Alpha 값)를 서서히 변경하여 시각적으로 부드러운 전환을 만드는 효과)2. 오브젝트의 위치, 크기, 회전을 부드럽게 변경할 때 사용3. 색상 변화, 텍스트 애니메이션 등을 연출할 때 사용사용방법유니티에서 DOTween을 다운받은 후에 적용시키고 싶은 UI에 스크립트를 붙인후 스..
2024.11.19 -
표현식 본문 멤버 및 파라미터 set 심화버전, 파라미터 델리게이트 적용 예시
표현식 본문 멤버란?C#에서 => 연산자를 사용해 메서드나 속성의 본문을 한 줄로 표현할 수 있는 기능이다.언제 사용하는가?메서드나 속성의 내용이 단순히 한 줄로 끝나는 경우에 사용메서드에 => 적용하기함수에서 코드가 한줄 들어가므로 => 연산자를 사용해서 간견하게 작성했다.사용 예시1public enum SceneType{ StartScene, MapChoiceScene, CarScene, LevelScene, MainScene}public class GameManager : MonoSingleton{ public void LoadScene(SceneType sceneType) { SceneManager.LoadScene($"{sceneType.ToSt..
2024.11.18 -
스크립트 캐싱(저장)하는 방법
스크립트 캐싱하는 방법1. Inspector에서 Drag & Drop- Public 또는 [SerializeField] 필드를 선언한 후, Inspector 창에서 다른 오브젝트를 직접 드래그 앤 드롭하여 연결한다.코드public GameObject target;[SerializeField] private GameObject target;특징- 간단하고 직관적이지만 연결이 끊어질 수도 있다. 추천상황- 소규모 프로젝트 또는 한 번 설정하면 잘 변하지 않는 경우.2. GetComponent()- 코드에서 동적으로 컴포넌트를 가져오는 방법이다.코드void Start() { Rigidbody rb = GetComponent(); }특징- 코드만으로 연결 가능하고 동적 연결이 필요한 경우 유용하지만 성능..
2024.11.15