admin管理员组

文章数量:1618695

 

一、目的:

1、项目需要,需要实现Untiy代码控制安卓屏幕亮度

 

二、参考:

1、在Unity中调整安卓当前窗口屏幕亮度的实现(无需导出工程或制作插件)

https://blog.csdn/schwarzer_w/article/details/72934700?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1

①总结:good:直接使用这个代码就可以了,

 

三、操作

1、实现效果:

平板中拖动Slder就可以实现控制屏幕亮度大小的设置

 

1、工程设置

①做了一个Slider和Text,slider来控制屏幕亮度,Text显示Slider数值

 

1、代码:控制屏幕亮度的代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using UnityEngine.UI;

public class ControlScreenBrightness : MonoBehaviour
{
    /// <summary>slider:控制屏幕亮度</summary>
    public GameObject obj_slider;

    public GameObject obj_text;

    // Use this for initialization
    void Start()
    {
#if UNITY_IOS

#elif UNITY_EDITOR
        return;
#elif UNITY_ANDROID
        SetApplicationBrightnessTo(1);
#endif

    }

    // Update is called once per frame
    void Update()
    {
        float tmp = obj_slider.GetComponent<Slider>().value;
        obj_text.GetComponent<Text>().text = tmp.ToString();

#if UNITY_IOS

#elif UNITY_EDITOR
        return;
#elif UNITY_ANDROID        
         SetApplicationBrightnessTo(tmp);        
#endif       
    }

    public void SetApplicationBrightnessTo(float Brightness)
    {
        AndroidJavaObject Activity = null;
        Activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
        Activity.Call("runOnUiThread", new AndroidJavaRunnable(() =>
        {
            AndroidJavaObject Window = null, Attributes = null;
            Window = Activity.Call<AndroidJavaObject>("getWindow");
            Attributes = Window.Call<AndroidJavaObject>("getAttributes");
            Attributes.Set("screenBrightness", Brightness);
            Window.Call("setAttributes", Attributes);
        }));
    }


}

 

 

本文标签: 亮度屏幕代码Untiy