Unity3D GUI C#脚本实例1——slider 控制环境光

2023-10-13 08:59

本文主要是介绍Unity3D GUI C#脚本实例1——slider 控制环境光,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境:Unity3D 4.5.1f3版本

GUI效果1

GUI的slider效果图


1、创建项目,在场景中放入地层和模型文件。

2、创建脚本 myGui.cs文件,public class myGui : MonoBehaviour

3、在myGui类中,void OnGUI()函数中添加代码

        {GUI.Label(new Rect(10, 10, 70, 30), "环境光强度");mAmbientLightValue = GUI.HorizontalSlider(new Rect(80, 15, 100, 30),mAmbientLightValue, 0.0f, 1.0f);int index = (int)(mAmbientLightValue * 255);GUI.Label(new Rect(190, 10, 40, 30), index.ToString());}

就会显示上面的那组滑块组,拖动slider滑块的数值显示在后面的Label中,范围是0,255。


4、 在上面代码后面更随添加改变环境光的代码:

        RenderSettings.ambientLight = new Color(mAmbientLightValue,mAmbientLightValue, mAmbientLightValue, 0);

编译后运行,在Unity3D中,可以看到随着slider滑动,环境光强弱改变了。


5、下面的那个滑块,和上面的类似。我在场景中添加了一个方向光,名称为directlight。
给方向光directlight添加一个脚本 directlightMove文件,让方向光在模型上面转动,可以看到地面是阴影的移动。

代码如下:

using UnityEngine;
using System.Collections;public class directlightMove : MonoBehaviour {private GameObject mPointLight;private GameObject mPlayer;// Use this for initializationvoid Start () {mPointLight = GameObject.Find("directlight");mPlayer = GameObject.Find ("construction_worker");}// Update is called once per framevoid Update () {mPointLight.transform.RotateAround(mPlayer.transform.position,mPlayer.transform.forward, Time.deltaTime*30);}
}


其中,construction_worker 是 那个红色工人模型的名称。

运行一下,可以看到地面上的阴影随着方向光在移动。

6、让第二个slider控制方向光强度。

在myGui类中,void OnGUI()函数中添加代码:

        {GUI.Label(new Rect(10, 40, 70, 30), "方向光强度");mLightValue = GUI.HorizontalSlider(new Rect(80, 45, 100, 30), mLightValue, 0.0f, 1.0f);int index = (int)(mLightValue * 255);GUI.Label(new Rect(190, 45, 40, 30), index.ToString());mPointLight.light.intensity = mLightValue;}


运行一下,方向光在运动,两个slider可以控制两种光。完成!

最近新接触的C#和Unity3D,有错误请一定要指教啊!




这篇关于Unity3D GUI C#脚本实例1——slider 控制环境光的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/202116

相关文章

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

C#读写文本文件的多种方式详解

《C#读写文本文件的多种方式详解》这篇文章主要为大家详细介绍了C#中各种常用的文件读写方式,包括文本文件,二进制文件、CSV文件、JSON文件等,有需要的小伙伴可以参考一下... 目录一、文本文件读写1. 使用 File 类的静态方法2. 使用 StreamReader 和 StreamWriter二、二进

C#中Guid类使用小结

《C#中Guid类使用小结》本文主要介绍了C#中Guid类用于生成和操作128位的唯一标识符,用于数据库主键及分布式系统,支持通过NewGuid、Parse等方法生成,感兴趣的可以了解一下... 目录前言一、什么是 Guid二、生成 Guid1. 使用 Guid.NewGuid() 方法2. 从字符串创建

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN