文章

如何在 Unity 中编写着色器:分步指南

特效在游戏中可以增强游戏体验并让您的游戏世界栩栩如生。在本文中,我们将逐步介绍如何使用 Shader 脚本。

开发环境

  • Windows 10
  • Unity 2020.3
  • Rider 2023

步骤 1:创建场景

第一步是在Unity项目中创建一个新的场景,选择带有摄像机和灯光的模板。保存为Simple.unity

创建的场景如下

步骤 2:创建3D物体

在Unity Editor的 Hierarchy 鼠标右键添加一个球体,”3D Object” -> “Sphere”

步骤 3:创建材质

在Project视图的Assets文件夹下创建一个材质球。

命名为 SimpleMat, 将材质球拖到场景创建的球体 Sphere

步骤 4:创建Shader脚本

在Project视图的Assets文件夹下创建一个Shader脚本。

命名为SimpleShader

Shader "mc/SimpleShader"
{
    SubShader
    {
        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            struct appdata
            {
                float4 vertex : POSITION;
            };

            struct v2f
            {
                float4 vertex : SV_POSITION;
            };

            // 顶点着色器
            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                return o;
            }

            // 片元着色器
            fixed4 frag (v2f i) : SV_Target
            {
                fixed4 col = fixed4(1.0, 0.0, 0.5, 1.0);
                return col;
            }
            ENDCG
        }
    }
}

可以通过修改 frag 函数中返回的 col值,改变场景中球体的显示颜色

本文由作者按照 CC BY 4.0 进行授权