55 lines
1.7 KiB
C#
55 lines
1.7 KiB
C#
using UnityEngine;
|
|||
|
|
|
||
|
|
namespace ChillConnect
|
||
|
|
{
|
||
|
|
public class AlphaController : MonoBehaviour
|
||
|
|
{
|
||
|
|
private AndroidJavaObject currentActivity;
|
||
|
|
private bool isInitialized = false;
|
||
|
|
|
||
|
|
void Start()
|
||
|
|
{
|
||
|
|
// 只在 Android 平台初始化
|
||
|
|
if (Application.platform == RuntimePlatform.Android)
|
||
|
|
{
|
||
|
|
InitializeAndroidBridge();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private void InitializeAndroidBridge()
|
||
|
|
{
|
||
|
|
try
|
||
|
|
{
|
||
|
|
using (AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
|
||
|
|
{
|
||
|
|
currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
|
||
|
|
isInitialized = true;
|
||
|
|
Debug.Log("AlphaController: Android bridge initialized successfully");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
catch (System.Exception e)
|
||
|
|
{
|
||
|
|
Debug.LogError("AlphaController: Failed to initialize Android bridge - " + e.Message);
|
||
|
|
isInitialized = false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// 设置 Unity Player 透明度
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="alpha">0.0 全透明, 1.0 不透明</param>
|
||
|
|
public void SetPlayerAlpha(float alpha)
|
||
|
|
{
|
||
|
|
if (!isInitialized)
|
||
|
|
{
|
||
|
|
Debug.LogWarning("AlphaController: Not initialized");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 限制透明度范围在 0-1 之间
|
||
|
|
alpha = Mathf.Clamp01(alpha);
|
||
|
|
currentActivity.Call("setPlayerAlpha", alpha);
|
||
|
|
Debug.Log($"AlphaController: Set alpha to {alpha}");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|