본문 바로가기
개발일지/기타

거리에 따라 투명도가 달라지는 물체 - 셰이더 그래프

by 라이티아 2024. 12. 23.

그래프 세팅

 

중요한것은 투명도를 나타내는 Alpha값을 따로 빼주는것

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

public class NodeTest : MonoBehaviour
{
    public GameObject Cube;
    public Material material;
    // Start is called before the first frame update
    void Start()
    {
        material = Cube.GetComponent<Renderer>().sharedMaterial;
    }

    // Update is called once per frame
    void Update()
    {
        float distance = Vector3.Distance(Camera.main.transform.position, Cube.transform.position);
        if (distance <= 10.0f)
        {
            material.SetFloat("_Alpha", distance / 10f);
        }
        else
        {

            material.SetFloat("_Alpha", 1f);
        }
    }
}

카메라에 들어가는 코드

 

 

핵심요소

 

property에 접근하기 위해서는

  • Randerer의 Material에 접근하는 것이 아니라, sharedMaterial에 접근해야함
  • Property의 값은 사용자가 설정한  이름에 _가 붙는다(A로 설정시 _A로 접근해야함)
  • Property값은 Animator과 비슷하게 SetFloat, SetVector 등으로 접근할 수 있다

가까이 있을시 투명해짐

가까이 있을시 불투명해짐