82 lines
2.7 KiB
C#
82 lines
2.7 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class temp_mat_script : MonoBehaviour
|
|
{
|
|
public MeshRenderer uav_lighter_meshrenderer;//无人机灯光渲染器
|
|
public Material uav_lighter_mat;//无人机灯光材质
|
|
public Shader _uav_lighter_shader;
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
//if (uav_lighter_meshrenderer != null)
|
|
// uav_lighter_mat = uav_lighter_meshrenderer.material;
|
|
}
|
|
|
|
[Space(10), Range(0, 1)]
|
|
public int use_emission_intensity = 1;
|
|
|
|
public string color_value = "#FF0000";
|
|
public Color color;
|
|
|
|
[Range(0, 1000)]
|
|
public float emission_intensity = 200;
|
|
|
|
[Range(0, 1)]
|
|
public float exposure_weight = 0.3f;
|
|
|
|
[Range(0,1)]
|
|
public float metallic = 0;
|
|
|
|
[Range(0, 1)]
|
|
public float smoothness = 0;
|
|
|
|
[Range(0,100)]
|
|
public float albedo_affect_emissive;
|
|
|
|
[Range(0,100) ]
|
|
public float emissive_intensity_unit;
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
uav_lighter_meshrenderer.material.SetColor("_BaseColor", color);
|
|
|
|
//uav_lighter_meshrenderer.material.SetFloat("_Metallic", metallic);
|
|
//uav_lighter_meshrenderer.material.SetFloat("_Smoothness", smoothness);
|
|
|
|
|
|
//uav_lighter_meshrenderer.material.SetFloat("_UseEmissiveIntensity", use_emission_intensity);
|
|
uav_lighter_meshrenderer.material.SetColor("_MColor", color);
|
|
//uav_lighter_meshrenderer.material.SetFloat("_AlbeoAffectEmissive", albedo_affect_emissive);
|
|
//uav_lighter_meshrenderer.material.SetFloat("_EmissiveIntensityUnit", emissive_intensity_unit);
|
|
uav_lighter_meshrenderer.material.SetFloat("_Intensity", emission_intensity);
|
|
uav_lighter_meshrenderer.material.SetFloat("_ExposureWeight", (1 - exposure_weight));
|
|
}
|
|
|
|
[ContextMenu("Light")]
|
|
public void OpenLighter()
|
|
{
|
|
//uav_lighter_mat = new Material(_uav_lighter_shader);
|
|
var uav_lighter_mat = new Material(Shader.Find("HDRP/Lit"));
|
|
string _color = color_value;
|
|
float _intensity = exposure_weight;
|
|
|
|
_intensity = Mathf.Clamp01(_intensity);
|
|
ColorUtility.TryParseHtmlString(_color, out Color __color);
|
|
uav_lighter_mat.color = __color;
|
|
uav_lighter_mat.SetFloat("_UseEmissiveIntensity", 1);
|
|
uav_lighter_mat.SetColor("_EmissiveColorLDR", __color);
|
|
uav_lighter_mat.SetFloat("_EmissiveIntensity", 200);
|
|
uav_lighter_mat.SetFloat("_EmissiveExposureWeight", (1 - _intensity));
|
|
uav_lighter_meshrenderer.material = uav_lighter_mat;
|
|
}
|
|
|
|
[ContextMenu("Close")]
|
|
public void CloseLighter()
|
|
{
|
|
uav_lighter_mat.SetFloat("_EmissiveIntensity", 1);
|
|
}
|
|
}
|