「Unity/Shader/skybox/色指定」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「#Shaderを"Custom_SolidColorSkybox"のファイル名で作る。 #ファイル全体を、以下コードで、置き換える #Materialを作り、ShaderをCustom/Solid...」) |
|||
(同じ利用者による、間の8版が非表示) | |||
行1: | 行1: | ||
− | #Shaderを" | + | #Shaderを"Custom_SkyboxSolidColor"のファイル名で作る。 |
#ファイル全体を、以下コードで、置き換える | #ファイル全体を、以下コードで、置き換える | ||
− | #Materialを作り、ShaderをCustom/ | + | #Materialを作り、ShaderをCustom/SkyboxSolidColorにする |
− | # | + | #Materialを、Unityメインメニュー/Window/Rendering/Lighting/Enviroment/SkyboxMaterialに割り当てる。 |
<pre> | <pre> | ||
− | Shader "Custom/ | + | Shader "Custom/SkyboxSolidColor" |
{ | { | ||
Properties | Properties | ||
行55: | 行55: | ||
} | } | ||
</pre> | </pre> | ||
− | |||
参考:https://notargs.hateblo.jp/entry/solid_skybox | 参考:https://notargs.hateblo.jp/entry/solid_skybox | ||
+ | ===cs側から色を変更したい場合=== | ||
+ | SkyboxSolidColorScene.cs | ||
+ | <pre> | ||
+ | using UnityEngine; | ||
+ | |||
+ | public class SkyboxSolidColorScene : MonoBehaviour | ||
+ | { | ||
+ | [SerializeField] Material skyboxMaterial; | ||
+ | void Start() | ||
+ | { | ||
+ | skyboxMaterial.SetColor("_Color", Color.blue); | ||
+ | RenderSettings.skybox = skyboxMaterial; | ||
+ | } | ||
+ | } | ||
+ | </pre> |
2022年12月7日 (水) 02:23時点における最新版
- 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 } } }
参考:https://notargs.hateblo.jp/entry/solid_skybox
cs側から色を変更したい場合
SkyboxSolidColorScene.cs
using UnityEngine; public class SkyboxSolidColorScene : MonoBehaviour { [SerializeField] Material skyboxMaterial; void Start() { skyboxMaterial.SetColor("_Color", Color.blue); RenderSettings.skybox = skyboxMaterial; } }