栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

Unity3d C# 修改

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity3d C# 修改

前言

室内的应用场景中经常需要如题的功能,灯光的强度属性倒是可以直接修改intensity,但是发光效果的模型(如灯光)的自发光效果强度也要相应修改,当然可以直接替换材质实现,不过效果不理想,在很灯多模型的情况下控制也麻烦,最好是公用的材质直接修改。

效果

实现

在编辑器下是可以直接修改:

那么我们要做的就是用脚本修改这个数值。

先用方块大致搭建个场景:

球体当做灯泡,在内部添加个点光源。
球体的材质使用Standard,勾选Emission选项和设置颜色。

根据这个编写脚本:

using UnityEngine;

public class IntensityCtrl : MonoBehaviour
{
    public Light Lit;
    public Material LitMat;
    Color InitCol = new Color(0.749f, 0.361f, 0.361f, 1.000f);
    [Range(-1,1)]
    public float intensity = 0;
    private void Start()
    {
        LitMat.SetColor("_EmissionColor", InitCol);
    }
    void Update()
    {
        float factor = Mathf.Pow(2, intensity);
        LitMat.SetColor("_EmissionColor", new Color(InitCol.r * factor, InitCol.g * factor, InitCol.b * factor));
        Lit.intensity = intensity;
    }
}

实现就是根据range的滑动条修改灯的强度值和修改材质的EmissionColor颜色值。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906255.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号