Unity 一个电量电耗获取
using UFramework.Runtime; using UnityEngine; using UnityEngine.UI; namespace GameMain { public class PowerTest : BehaviourBase { float e = 0; [SerializeField] private Text _text1; [SerializeField] private Text _text2; protected override void UpdateEx() { base.UpdateEx(); e = Power.electricity; _text1.text = $"电池总容量{Power.capacity}毫安,电压{Power.voltage}伏"; _text2.text = $"实时电流{e}毫安,实时功率{(int)(e * Power.voltage)},满电量能玩{((Power.capacity / e).ToString("f2"))}小时"; } } public class Power { static public float electricity { get { #if UNITY_ANDROID //获取电流(微安),避免频繁获取,取一次大概2毫秒 float electricity = (float)manager.Call<int>("getIntProperty", PARAM_BATTERY); //小于1W就认为它的单位是毫安,否则认为是微安 return ToMA(electricity); #else return -1f; #endif } } //获取电压 伏 static public float voltage { get; private set; } //获取电池总容量 毫安 static public int capacity { get; private set; } //获取实时电流参数 static object[] PARAM_BATTERY = new object[] { 2 }; //BatteryManager.BATTERY_PROPERTY_CURRENT_NOW) static AndroidJavaObject manager; static Power() { #if UNITY_ANDROID AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity"); manager = currActivity.Call<AndroidJavaObject>("getSystemService", new object[] { "batterymanager" }); capacity = (int)(ToMA((float)manager.Call<int>("getIntProperty", new object[] { 1 })) / ((float)manager.Call<int>("getIntProperty", new object[] { 4 }) / 100f)); //BATTERY_PROPERTY_CHARGE_COUNTER 1 BATTERY_PROPERTY_CAPACITY 4 AndroidJavaObject receive = currActivity.Call<AndroidJavaObject>("registerReceiver", new object[] { null, new AndroidJavaObject("android.content.IntentFilter", new object[] { "android.intent.action.BATTERY_CHANGED" }) }); if (receive != null) { voltage = (float)receive.Call<int>("getIntExtra", new object[] { "voltage", 0 }) / 1000f; //BatteryManager.EXTRA_VOLTAGE } #endif } static float ToMA(float maOrua) { return maOrua < 10000 ? maOrua : maOrua / 1000f; } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类