Files
Cielonos/Assets/OtherPlugins/ChocDino/UIFX/Demos/Scripts/Common/AskForReview.cs
SoulliesOfficial d94241f36c 场景设计
2026-01-12 03:22:16 -05:00

138 lines
3.6 KiB
C#

//--------------------------------------------------------------------------//
// Copyright 2023-2025 Chocolate Dinosaur Ltd. All rights reserved. //
// For full documentation visit https://www.chocolatedinosaur.com //
//--------------------------------------------------------------------------//
using System.Linq;
using UnityEngine;
using UnityEngine.EventSystems;
namespace ChocDino.UIFX.Demos
{
internal class AskForReview : MonoBehaviour, IPointerClickHandler
{
enum Product
{
Unknown,
Bundle,
BlurFilter,
DropShadowFilter,
ExtrudeFilter,
FrameFilter,
GlowFilter,
MotionBlur,
OutlineFilter,
Trail,
}
[SerializeField] Product _product = Product.Unknown;
public void OnPointerClick(PointerEventData eventData)
{
string url = GetBestReviewUrl();
if (!string.IsNullOrEmpty(url))
{
Application.OpenURL(url);
}
}
private readonly static string BundleId = "266945";
private readonly static string BlurFilterId = "268262";
private readonly static string DropShadowFilterId = "272733";
private readonly static string ExtrudeFilterId = "276742";
private readonly static string FrameFilterId = "301228";
private readonly static string GlowFilterId = "274847";
private readonly static string MotionBlurId = "260687";
private readonly static string OutlineFilterId = "273578";
private readonly static string TrailId = "260697";
private static string GetReviewUrl(string assetId)
{
return string.Format("https://assetstore.unity.com/packages/slug/{0}?aid=1100lSvNe#reviews", assetId);
}
private string GetBestReviewUrl()
{
// Try to work out which asset package is being used
if (GetTypeFromName("ChocDino.UIFX.FillGradientFilter") != null)
{
return GetReviewUrl(BundleId);
}
switch (_product)
{
case Product.Bundle:
return GetReviewUrl(BundleId);
case Product.BlurFilter:
return GetReviewUrl(BlurFilterId);
case Product.DropShadowFilter:
return GetReviewUrl(DropShadowFilterId);
case Product.ExtrudeFilter:
return GetReviewUrl(ExtrudeFilterId);
case Product.FrameFilter:
return GetReviewUrl(FrameFilterId);
case Product.GlowFilter:
return GetReviewUrl(GlowFilterId);
case Product.MotionBlur:
return GetReviewUrl(MotionBlurId);
case Product.OutlineFilter:
return GetReviewUrl(OutlineFilterId);
case Product.Trail:
return GetReviewUrl(TrailId);
default:
case Product.Unknown:
break;
}
if (GetTypeFromName("ChocDino.UIFX.BlurFilter") != null)
{
return GetReviewUrl(BlurFilterId);
}
if (GetTypeFromName("ChocDino.UIFX.DropShadowFilter") != null)
{
return GetReviewUrl(DropShadowFilterId);
}
if (GetTypeFromName("ChocDino.UIFX.ExtrudeFilter") != null)
{
return GetReviewUrl(ExtrudeFilterId);
}
if (GetTypeFromName("ChocDino.UIFX.FrameFilter") != null)
{
return GetReviewUrl(FrameFilterId);
}
if (GetTypeFromName("ChocDino.UIFX.GlowFilter") != null)
{
return GetReviewUrl(GlowFilterId);
}
if (GetTypeFromName("ChocDino.UIFX.OutlineFilter") != null)
{
return GetReviewUrl(OutlineFilterId);
}
if (GetTypeFromName("ChocDino.UIFX.MotionBlurReal") != null)
{
return GetReviewUrl(MotionBlurId);
}
if (GetTypeFromName("ChocDino.UIFX.TrailEffect") != null)
{
return GetReviewUrl(TrailId);
}
return GetReviewUrl(BundleId);
}
public static System.Type GetTypeFromName(string name)
{
foreach (var assembly in System.AppDomain.CurrentDomain.GetAssemblies().Reverse())
{
var tt = assembly.GetType(name);
if (tt != null)
{
return tt;
}
}
return null;
}
}
}