Unity3d C#实现编辑器不运行状态下执行的脚本

第一章方式:

函数前面 + ContextMenu("Play") ,Inspector面板右键调用

第二种方式:

OnValidate() ,值改变自动执行

cs 复制代码
using UnityEngine;
using System.Linq;

public class NightController : MonoBehaviour
{
    public float m_fEmissionInstensity = 0;
    public Material[] m_NightMats;

    // Start is called before the first frame update
    void OnValidate()
    {
        m_NightMats.ToList().ForEach(_ =>
        {
            _.SetFloat("_Emission_Intensity", m_fEmissionInstensity);
        });
    }


    [ContextMenu("Play")]
    void Play()
    {
        m_NightMats.ToList().ForEach(_ =>
        {
            _.SetFloat("_Emission_Intensity", m_fEmissionInstensity);
        });
    }
}
相关推荐
暗暗别做白日梦30 分钟前
Pulsar 消息同步机制
c#·linq
大不点wow36 分钟前
Java序列化与反序列化:让对象走出JVM
java·开发语言·jvm
阿里嘎多学长37 分钟前
2026-07-22 GitHub 热点项目精选
开发语言·程序员·github·代码托管
噢,我明白了41 分钟前
Java中日期和字符串的处理
java·开发语言·日期
爱刷碗的苏泓舒41 分钟前
C 语言 if-else 与 switch-case 分支语句对比
c语言·开发语言
海盗12341 小时前
微软技术日报 ——2026-07-21
microsoft·c#·.net
-银雾鸢尾-1 小时前
C#中的泛型约束
开发语言·c#
雪碧透心凉_1 小时前
while 循环与循环嵌套
开发语言·python
乐观勇敢坚强的老彭1 小时前
信奥C++一维数组笔记
开发语言·c++·笔记
这就是佬们吗2 小时前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm