유니티 오브젝트/라이트/Shader 생성 관련 코드

728x90

오브젝트 활성화 Active

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cube : MonoBehaviour
{
    public GameObject CubeObj;
    bool cubeFlg;
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            cubeFlg = CubeObj.activeSelf;
            CubeObj.SetActive(!cubeFlg);
        }
    }
}

 

라이트 활성화 enable

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class light : MonoBehaviour
{
    private Light myLight;
    void Start()
    {
        myLight = GetComponent<Light>();
    }
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            myLight.enabled = !myLight.enabled;
        }
    }
}

 

쉐이더 변환

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class shader : MonoBehaviour
{
    Shader shader1;
    Shader shader2;
    Renderer rend;

    void Start()
    {
        rend = GetComponent<Renderer>();
        shader1 = Shader.Find("Diffuse");
        shader2 = Shader.Find("Self-Illumin/Specular");
    }
    void Update()
    {
        if(Input.GetMouseButtonDown(0))
        {
            if(rend.material.shader == shader1)
            {
                rend.material.shader = shader2;
            }
            else
            {
                rend.material.shader = shader1;
            }
        }
    }
}

쉐이더는 rend - material - shader 순으로 가져오기 때문에 코드 작성 시 경로에 맞춰 가지고와야 한다.

728x90