Firebase 토큰을 가져오는 방법
·
Unity/Firebase
Firebase 토큰은 Firebase Cloud Messaging(FCM)을 사용하여 앱에 알림을 보내기 위해 필요한 고유한 식별자입니다. Firebase 토큰을 가져오는 방법은 여러 가지가 있습니다. 그 중 하나는 FirebaseMessaging.GetTokenAsync() 메서드를 사용하는 것입니다. FirebaseMessaging.GetTokenAsync() 메서드는 비동기 메서드로, 토큰을 가져오는 작업이 완료되면 TaskCompletionSource 객체를 통해 토큰을 전달합니다. FirebaseMessaging.GetTokenAsync().ContinueWithOnMainThread() 메서드는 FirebaseMessaging.GetTokenAsync() 메서드의 결과를 UI 스레드에서 처리..
UnityException: Could not find any valid targets to launch on for Android
·
Unity/Tip
OperationFailedException: Installation failed. See the Console for details. UnityEditor.Android.AndroidDeploymentTargetsExtension.UploadAPK (UnityEditor.BuildReporting.BuildReport buildReport, UnityEditor.Android.AndroidDevice device, UnityEditor.ProgressTaskManager taskManager) 이와같은 에러가 발생하며 앱 빌드는 잘되지만 Unity Editor와 연결된 Android에 Install이 되질 않는 경우 Android에 설치된 해당 앱을 삭제하고 Build And Run을 하면 해결된다. ..
C# 11.0의 required modifier
·
C#
C# 11.0에서는 required modifier가 추가되었습니다. required modifier는 클래스, 구조체, 인터페이스의 필드 또는 속성에 적용하여, 해당 필드 또는 속성이 반드시 초기화되어야 함을 나타냅니다. required modifier 사용하기 required modifier를 사용하려면, 필드 또는 속성에 required 키워드를 추가하면 됩니다. // required modifier 사용 struct Person { public string Name { get; set; } = "John Doe"; public int Age { get; set;; } = 30; public required string Address; } 이 코드에서는 Person 구조체의 Address 속성에 r..
2023.11.09 치비 폭탄 그리고 핑크키티 구피
·
Hobby/물생활
빨간색 점이 많이 보이길래 자세히 봤더니 다 체리새우 치비였네요 밥을 줘도 애플이랑 안시한테 다 뺏겨서 잘먹기는하는지 싶었는데 조만간 수초를 식재해줘야겠어요 😄😄😄 핑크키티라고 불리는 구피!!! 봉달해온지 한달정도 되었는데 한마리는 일주일 전에 출산하고 또 한마리는 곧 출산 예정이랍니다 🥰🥰🥰 아가 구피들 🐟🐠
AdMob : "Ad unit doesn't match format."
·
Unity/Tip
Unity Editor에서는 광고 테스트가 잘되었는데 빌드한 뒤 Android에서 테스트 시 에러가 발생한다면, 광고를 요청할 때 사용한 클래스가 무엇인지 잘 확인해야 한다. 보상형 광고는 RewardedAd 클래스를 사용해야 하고, 보상형 전면 광고는 RewardedInterstitialAd 클래스이다. 아래 표는 AdMob 개발자 문서를 보고 정리한 내용이다. 광고 형식 클래스명 보상형 광고 RewardedAd 보상형 전면 광고 RewardedInterstitialAd 전면 광고 InterstitialAd 배너 광고 BannerView "Code": 3, "Message": "Ad unit doesn't match format.", "Domain": "com.google.android.gms.ads"..
C# 6.0 정적 멤버 직접 사용
·
C#
C# 6.0에서는 정적 멤버를 클래스명 없이 직접 사용할 수 있는 기능이 추가되었습니다. 이 기능은 using static 키워드를 사용하여 구현됩니다. 예제1 using static 키워드를 사용하면, 해당 파일 내에서는 지정된 클래스의 모든 정적 멤버를 클래스명 없이 사용할 수 있습니다. 예를 들어, 다음과 같이 코드를 작성하면 됩니다. using static System.Console; namespace CS6 { class Program { static void Main(string[] args) { // Console. 생략 가능 WriteLine("csharpstudy.com"); // Math. 생략 가능 int x = Random(); float y = Sqrt(100); // DateTi..
C# 6.0의 catch/finally 블럭에서 await 사용
·
C#
C# 6.0에서는 catch/finally 블럭에서 await 키워드를 사용할 수 있는 기능이 추가되었습니다. 이 기능을 사용하면, 예외가 발생하더라도 finally 블럭을 실행할 수 있습니다. C# 5.0 이전 버전 C# 5.0 이전 버전에서는 catch/finally 블럭에서 await 키워드를 사용할 수 없었습니다. 따라서 예외가 발생하면 finally 블럭은 실행되지 않았습니다. 예를 들어, 다음과 같은 코드를 작성하면 예외가 발생하더라도 finally 블럭은 실행되지 않습니다. async Task Main() { try { await Task.Run(() => { throw new Exception("예외가 발생했습니다."); }); } catch (Exception ex) { // 예외 처리 ..
Timeline KeyFrame에 관하여...
·
Unity/Tip
Unity의 Timeline은 키프레임을 사용하여 값을 시간에 따라 변경할 수 있는 기능입니다. Vector3, float, int는 모두 연속적인 값을 표현할 수 있는 타입이기 때문에 키프레임을 삽입할 수 있습니다. 그러나 string은 문자열을 표현하는 타입이기 때문에 키프레임을 삽입할 수 없습니다. 문자열은 연속적인 값을 표현하지 않기 때문입니다. 예를 들어, "Hello, world!"라는 문자열을 1초마다 키프레임을 삽입한다고 가정해 보겠습니다. 첫 번째 키프레임에서 "Hello, world!"라는 문자열이 설정되고, 두 번째 키프레임에서 "Goodbye, world!"라는 문자열이 설정됩니다. 이 경우, 두 번째 키프레임에서 문자열이 변경되었는지 확인하기 어렵습니다. long도 마찬가지입니다...