unity3d 地面印花_Unity Shader案例篇—角色动态地面印记

本文分享了一种使用Unity3D Shader创建角色动态地面印记的方法,包括简单圆环版本和周期频率变化版本。通过Shader和C#控制脚本,实现了角色在行走时地形上留下动态收缩圆环的效果,可用于游戏场景增强视觉体验。
摘要由CSDN通过智能技术生成

下面和大家分享一个shader案例,如何实现角色动态地面印记。效果如下图所示:角色在地形上行走,地形上始终会有一个动态圆环跟随角色,类似于阴影的一个效果。但是这个

“阴影”是我们可以自己控制它的效果的,如图2所示是通过修改后得到的效果图:圆环是有一定频率别的收缩,这种效果在游戏中我们经常能看到。

角色动态地面印记实现方法

1、简单圆环版本

实现一的效果的Shader为

Shader "Custom/RadiusShader" {

Properties {

_Color("Color", Color) = (1,1,1,1)

_MainTex("Albedo (RGB)", 2D) = "white" {}

_Center("Center", Vector) = (0,0,0,0)

_Radius("Radius", Float) = 0.5

_RadiusColor("Radius Color", Color) = (1,0,0,1)

_RadiusWidth("Radius Width", Float) = 2

SubShader {

Tags { "RenderType"="Opaque" }

LOD 200

CGPROGRAM

// Physically based Standard lighting model, and enable shadows on all light types

#pragma surface surf Standard fullforwardshadows

// Use shader model 3.0 target, to get nicer looking lighting

#pragma target 3.0

sampler2D _MainTex;

fixed4 _Color;

float3 _Center;

float _Radius;

fixed4 _RadiusColor;

float _RadiusWidth;

struct Input {

float2 uv_MainTex;

float3 worldPos;

};

void surf(Input IN, inout SurfaceOutputStandard o) {

float d = distance(_Center, IN.worldPos);

if (d > _Radius && d &l

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值