Unity中電量顯示和充電狀態(tài)

label顯示電量,spBattery電量圖標(biāo)用來切換充電狀態(tài)。代碼如下:

using System.Linq;
using System.Text;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GUIMainSystemInfo : MonoBehaviour
{
    // Start is called before the first frame update
    [SerializeField]
    UILabel labelBattery;
    [SerializeField]
    UISprite spBattery;
    private float batteryLevel = 0;
    private float prevBatteryLevel = 0;
    private BatteryStatus batteryStatus;
    private BatteryStatus prevBatteryStatus;
    StringBuilder sb = new StringBuilder();
    void Start()
    {
        if (labelBattery)
        {
            StartCoroutine("UpdataBattery");
        }
    }

    //更新手機電量
    IEnumerator UpdataBattery()
    {
        while (true)
        {
            batteryLevel = SystemInfo.batteryLevel;
            batteryStatus = SystemInfo.batteryStatus;
            if (batteryLevel != prevBatteryLevel || batteryStatus != prevBatteryStatus)
            {
                prevBatteryLevel = SystemInfo.batteryLevel;
                prevBatteryStatus = SystemInfo.batteryStatus;
                if (batteryStatus == BatteryStatus.Charging)
                {
                    labelBattery.text = "";
                    spBattery.spriteName = "btnbatty2";
                }else
                {
                    labelBattery.text = GetBatteryLevel();
                    spBattery.spriteName = "btnbatty";
                }
            }
            yield return new WaitForSeconds(300f);
        }
    }
    //讀取手機電量
    string GetBatteryLevel()
    {
        sb.Remove(0, sb.Length);
        sb.Append( Mathf.CeilToInt(SystemInfo.batteryLevel*100));
        sb.Append("%");
        return sb.ToString();
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容