「Unity/Shader/skybox/色指定」の版間の差分
提供: 初心者エンジニアの簡易メモ
行52: | 行52: | ||
ENDCG | ENDCG | ||
} | } | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | ===cs側から変更したい場合=== | ||
+ | |||
+ | SkyboxSolidColorScene.cs | ||
+ | <pre> | ||
+ | using UnityEngine; | ||
+ | |||
+ | public class SkyboxSolidColorScene : MonoBehaviour | ||
+ | { | ||
+ | [SerializeField] Material skyboxMaterial; | ||
+ | void Start() | ||
+ | { | ||
+ | skyboxMaterial.SetColor("_Color", Color.red); | ||
+ | RenderSettings.skybox = skyboxMaterial; | ||
} | } | ||
} | } |
2022年12月7日 (水) 01:40時点における版
- Shaderを"Custom_SkyboxSolidColor"のファイル名で作る。
- ファイル全体を、以下コードで、置き換える
- Materialを作り、ShaderをCustom/SkyboxSolidColorにする
- Materialを、Unityメインメニュー/Window/Rendering/Lighting/Enviroment/SkyboxMaterialに割り当てる。
Shader "Custom/SkyboxSolidColor" { Properties { _Color ("Color", Color) = (1, 1, 1, 0) } SubShader { Tags { "RenderType"="Background" "Queue"="Background" "PreviewType"="SkyBox" } LOD 100 Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; }; float3 _Color; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uv = v.uv; return o; } fixed4 frag (v2f i) : SV_Target { return float4(_Color, 1); } ENDCG } } }
cs側から変更したい場合
SkyboxSolidColorScene.cs
using UnityEngine; public class SkyboxSolidColorScene : MonoBehaviour { [SerializeField] Material skyboxMaterial; void Start() { skyboxMaterial.SetColor("_Color", Color.red); RenderSettings.skybox = skyboxMaterial; } }