zoukankan      html  css  js  c++  java
  • c#脚本控制shader

    如图所示,c#脚本控制shader颜色。

    1 public class ControlColor : MonoBehaviour
    2 {
    3     public Color color = new Color(1, 1, 1, 1);
    4     public Material mat;
    5     public void ChangeColor()
    6     {
    7         mat.SetVector("_Diffuse", color);
    8     }
    9 }
     1 [CustomEditor(typeof(ControlColor))]
     2 public class Edit_ControlColor : Editor {
     3     ControlColor scr;//脚本本体
     4     SerializedObject serObj;
     5     SerializedProperty color;
     6     SerializedProperty mat;
     7 
     8     public void OnEnable()
     9     {
    10         scr = (ControlColor)target;
    11         serObj = new SerializedObject(target);
    12         color = serObj.FindProperty("color");
    13         mat = serObj.FindProperty("mat");
    14     }
    15     public override void OnInspectorGUI()
    16     {
    17         serObj.Update();
    18         EditorGUILayout.PropertyField(color,new GUIContent("Color"));
    19         EditorGUILayout.PropertyField(mat,new GUIContent("Mat"));
    20         serObj.ApplyModifiedProperties();
    21         scr.ChangeColor();
    22     }
    23 }
     1 // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
     2 
     3 Shader "Custom/Color"
     4 {
     5     Properties
     6     {
     7          _Diffuse("Diffuse",Color)=(1,1,1,1)
     8     }
     9     SubShader
    10     {
    11         Tags { "RenderType"="Opaque" }
    12         LOD 100
    13 
    14         Pass
    15         {
    16             CGPROGRAM
    17             #pragma vertex vert
    18             #pragma fragment frag
    19             
    20             #include "UnityCG.cginc"
    21             float4 _Diffuse;
    22 
    23             struct appdata
    24             {
    25                 float4 vertex : POSITION;
    26                 float2 uv : TEXCOORD0;
    27             };
    28 
    29             struct v2f
    30             {
    31                 float4 pos : SV_POSITION;
    32             };
    33             
    34             v2f vert (appdata v)
    35             {
    36                 v2f o;
    37                o.pos=UnityObjectToClipPos(v.vertex);
    38                return o;
    39             }
    40             
    41             fixed4 frag (v2f i) : SV_Target
    42             {
    43                 return _Diffuse;
    44             }
    45             ENDCG
    46         }
    47     }
    48 }
  • 相关阅读:
    Java并发编程之volatile变量
    mysql以下c连接mysql数据库
    2014年工作中遇到的20个问题:61-80
    2014年工作中遇到的20个问题:61-80
    雷观(一):我的职业发展路线之一
    雷观(一):我的职业发展路线之一
    CentOS下安装和配置MySQL-JDK-Tomcat-Nginx(个人官网环境搭建手册)
    雷观(序)
    雷观(序)
    ITFriend创业阶段的服务器环境搭建手册
  • 原文地址:https://www.cnblogs.com/luxishi/p/7156413.html
Copyright © 2011-2022 走看看