Shader º¯¼ö Á¢±Ù

¼ÎÀÌ´õ µ¿ÀûÀ¸·Î ºÙÀ̱â


½ºÅ©¸³Æ®¿¡¼­ ¼ÎÀÌ´õ¸¦ µ¿ÀûÀ¸·Î Àû¿ëÇÒ·Á¸é material.shader¸¦ ¼³Á¤ÇÏ¸é µÈ´Ù.

transform.GetComponent<Renderer>().material.shader = Shader.Find("Custom/TestSurf");

¼ÎÀÌ´õ º¯¼ö Á¢±Ù

¼ÎÀÌ´õ º¯¼öÀÇ °ªÀ» ¾ò¾î¿À°í ¼³Á¤ÇÑ´Ù.

//°ª ¾ò¾î¿À±â
float f = transform.GetComponent<Renderer>().material.GetFloat("_ColorStrength");

//°ª ¼³Á¤
transform.GetComponent<Renderer>().material.SetFloat("_ColorStrength", 0.5f);

Shader Àüü ¼Ò½º


Shader "Custom/TestSurf" {
     Properties {
         _ColorStrength ("Color Strength", Float) = 1.0
      }
     
     SubShader {
         CGPROGRAM

         #pragma surface surf NoLighting noambient

        float _ColorStrength;
        
         struct Input {
             float4 c : Color;
         };

         fixed4 LightingNoLighting(SurfaceOutput s, fixed3 lightDir, fixed atten){
             fixed4 c;
             c.rgb = s.Albedo;
             c.a = s.Alpha;
             return c;
         }
         
         void surf (Input input, inout SurfaceOutput o) {
             o.Albedo = _ColorStrength;
         }
         ENDCG
     }
 }

½ºÅ©¸³Æ® Àüü ¼Ò½º


using UnityEngine;
using System.Collections;

public class CylinderScript : MonoBehaviour {

    // Use this for initialization
    void Start () {
        transform.GetComponent<Renderer>().material.shader = Shader.Find("Custom/TestSurf");
        float f = transform.GetComponent<Renderer>().material.GetFloat("_ColorStrength");
        Debug.Log ("ColorStreangth value is  " + f);
    }
    
    // Update is called once per frame
    void Update () {
        transform.GetComponent<Renderer>().material.SetFloat("_ColorStrength", 0.5f);
    }
}

ÂüÁ¶)
http://www.devkorea.co.kr/reference/Documentation/ScriptReference/Material.SetColor.html