유니티 실시간 딜레이 계산
Unity/Study2024. 1. 24. 21:38유니티 실시간 딜레이 계산

구현 소개유니티 에디터 플레이 모드가 아니더라도 저장된 데이터로 실시간 딜레이 구현하기기능 구현DateTimeDateTime timerStart = DateTime.Now;DateTime timerEnd = timerStart.Add(new TimeSpan(0, 10, 0));DateTime.Now를 통해 현재 시간을 확보 TimeSpan으로 10초의 딜레이 생성Delay Coroutinewhile (true){ if (totalSecondsLeft > 1) { if (totalSecondsLeft >= 60) { TimeSpan ts = TimeSpan.FromSeconds(totalSecondsLeft); timeCheckTe..

유니티 FirestoreProperty를 사용한 C# 클래스 매핑
Unity/SDK2024. 1. 21. 14:30유니티 FirestoreProperty를 사용한 C# 클래스 매핑

구현 소개Dictionary를 사용한 데이터 저장은 관리가 불편하다.관리를 쉽게 하기 위해 클래스로 만든 객체 필드,프로퍼티 값들을 Firestore에 저장할 필요가 있다.기능 구현Firestore 전용 데이터 클래스using Firebase.Firestore;[FirestoreData]public class GameUserProfile{ // Info [FirestoreProperty] public string Uid { get; set; } [FirestoreProperty] public string Nickname { get; set; } [FirestoreProperty] public long Gold { get; set; } [FirestoreProperty] publ..

유니티 Firestore를 통한 데이터 저장 & 불러오기
Unity/SDK2024. 1. 18. 22:12유니티 Firestore를 통한 데이터 저장 & 불러오기

기능 구현Firestore 초기화FirebaseApp app = FirebaseApp.DefaultInstance;FirebaseFirestore db = FirebaseFirestore.GetInstance(app);유저 데이터 읽어오기private void ReadUserDataFromFirestore(){ DocumentReference docRef = db.Collection("users").Document("GuestID"); docRef.GetSnapshotAsync().ContinueWithOnMainThread(task => { if (task.IsFaulted || task.IsCanceled) { Debug.Log("F..

유니티 Firebase 구글 로그인 구현
Unity/SDK2024. 1. 15. 15:44유니티 Firebase 구글 로그인 구현

필수 과정Firebase 사이트에서 테스트 프로젝트 생성프로젝트 기능으로 Authentication 등록Unity에서 연동할 SDK와 google-services-json 파일 업로드Android 빌드 맞춤과 Project Settings에서 user key 생성생성한 key에서 SHA 인증서 지문 등록unity 패키지 이름 = Firebase 패키지 이름 맞추기 (com.company.name)Google Web Client ID 준비구글 Signin 패키지 다운 Releases · googlesamples/google-signin-unityGoogle Sign-In API plugin for Unity game engine. Works with Android and iOS. - googlesample..

유니티 FirebaseDatabase 인스턴스 초기화 오류
Unity/Trouble Shooting2024. 1. 13. 22:55유니티 FirebaseDatabase 인스턴스 초기화 오류

문제의 코드private void Awake(){ DatabaseReference databaseRef = FirebaseDatabase.DefaultInstance.RootReference;}DatabaseException: Failed to get FirebaseDatabase instance: Specify DatabaseURL within FirebaseApp or from your GetInstance() call.Firebase 내에 제공하는 기능인 Realtime Database를 이용하기 위해 코드를 실행하던중, 오류가 발생하였다.인스턴스 과정중에 DatabaseURL이 제대로 적용이 안되어 해당 기능을 불러오지 못하는 문제가 발생한듯 하다.문제 해결Realtime Database를 ..

유니티 AudioSource 최대 중첩 오류
Unity/Trouble Shooting2024. 1. 8. 19:17유니티 AudioSource 최대 중첩 오류

문제 코드public void PlayOneShot(AudioClip clip){ if (clip == null) return; AudioSource newAudioSource = ResourceManager.Instance.InstantiatePrefab("AudioSource").GetComponent(); newAudioSource.volume = Source.volume * SoundModifier; newAudioSource.clip = clip; newAudioSource.Play(); StartCoroutine(nameof(DestroySourceWhenFinished), newAudioSource);}해당 코드를 이용해 FPS에서 총이 격발 될..

유니티 UI Binding 오류
Unity/Trouble Shooting2024. 1. 3. 20:35유니티 UI Binding 오류

관련 링크 피드백에 따른 UI Manager 리팩토링Unity 개발 주제의 다양한 내용의 개인성장 개발 블로그jhoon8903.github.io해당 블로그에 UI 바인딩 코드를 참고하는 도중 오류가 발생하였다.문제 코드public void Binding(GameObject parent) where T : UnityEngine.Object{ T[] objects = parent.GetComponentsInChildren(true); // 오류 부분 Dictionary objectDict = objects.ToDictionary(comp => comp.name, comp => comp as Object); _objects[typeof(T)] = objectDict; Ass..

유니티 로그라이크 방 타입에 맞는 오브젝트 생성
Unity/Study2023. 12. 21. 21:08유니티 로그라이크 방 타입에 맞는 오브젝트 생성

로그라이크 방 오브젝트 생성방이 생성될 때 해당 방 타입에 맞는 오브젝트 생성 [아이템, 장애물, 적]기능 구현RoomBlueprint.cs[CreateAssetMenu(fileName = "RoomBlueprint", menuName = "Blueprint/Room")]public class RoomBlueprint : ScriptableObject{ [SerializeField] private Sprite floor; [SerializeField] private bool isReward; [Header("Object Position")] [SerializeField] private Vector2 rewardPosition; [SerializeField] private Lis..

유니티 로그라이크 미니맵 구현
Unity/UI2023. 12. 20. 20:53유니티 로그라이크 미니맵 구현

기능 구현미니맵 구현에 필요한 Fields#region Fields[SerializeField] private Transform miniRoomContainer;private float cellWidth;private float cellHeight;private GameObject miniRoomPrefab;private GameObject[,] miniRoomArray;private Vector2Int currentPlayerCoordinate;private List visitedCoordinates = new List();#endregionminiRoomContainer : 미니맵 셀들이 배치되는 Transform ParentcellWidth : 미니맵 셀의 너비cellHeight : 미니맵 셀의 높..

유니티 로그라이크 다음 방으로 이동
Unity/Study2023. 12. 19. 00:42유니티 로그라이크 다음 방으로 이동

기능 구현MoveToDesignativeRoom/// /// 방에 진입할 시, 좌표 설정 및 문 활성화 체크/// /// 들어간 방향/// 카메라 움직임 딜레이private IEnumerator MoveToDesignativeRoom(Vector2Int MoveDirection){ int x = _currentRoom.Coordinate.x + MoveDirection.y; int y = _currentRoom.Coordinate.y + MoveDirection.x; _currentRoom = _roomArray[x, y]; _currentRoom.OpenActivatedDoor(); Main.Game.Player.transform.position += new Vector3(M..

image