using UnityEngine; using UnityEditor; [ExecuteAlways] public class MainCameraPositionShaderSetter : MonoBehaviour { private static readonly int pId_MainCameraPosition = Shader.PropertyToID("_MainCameraPosition"); private void OnEnable() { if (!Camera.main || Camera.main.gameObject != this.gameObject) { Debug.LogWarning("MainCameraPositionShaderSetter set on object that is not the main camera"); } } private void Update() { Shader.SetGlobalVector(pId_MainCameraPosition, this.transform.position); } }