1. 显示与消失
主要使用Phase(相位)0-1的变化来实现;
- 建立一个Canvas与Image
- Image里加入ExampleMaterials的一个Material
- 加入SSFS Manager脚本,用于控制Material的播放与隐藏
- 加入2个按钮,绑定SSFSManager里Show与Hide函数
(参详官方的Demo_SignSwitcher.cs,封装一个Show与Hide的类)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class SSFSManager : MonoBehaviour
{
[Range(0, 2)]
public float show_speed = 0.5f; // 显示速度,基准为1,变大变慢,变小变快
[Range(0, 2)]
public float hide_speed = 0.5f;
[Range(0, 1)]
public float default_show = 0; // 默认显示Phase的进度
public bool if_new = true; // 是否新建Material
Image img;
Material ssfs;
// Start is called before the first frame update
void Start()
{
img = this.GetComponent<Image>();
ssfs = img.material;
if (if_new)
{
ssfs = new Material(img.material);
img.material = ssfs;
}
ssfs.SetFloat("_Phase", default_show);
}
public void Show()
{
StartCoroutine(ShowSSFS());
}
public IEnumerator ShowSSFS()
{
float cphase = 0;
while (cphase < 1f)
{
cphase += Time.deltaTime / show_speed;
ssfs.SetFloat("_Phase", cphase);
yield return new WaitForEndOfFrame();
}
}
public void Hide()
{
StartCoroutine(HideSSFS());
}
public IEnumerator HideSSFS()
{
float cphase = 1;
while (cphase > 0f)
{
cphase -= Time.deltaTime / hide_speed;
ssfs.SetFloat("_Phase", cphase);
yield return new WaitForEndOfFrame();
}
}
}
2. General
- General (整体)
- Two Sided : 是否正反2面都可以显示
- Blending Mode : 混合模式,指的是颜色与底色是如何混合的
2.1 Additive 相加
2.2 Alpha Blended 透明度混合
2.3 Soft Additive 软件相加
2.4 Multiply 相乘
2.5 Invert 反方
2.6 Solid 实心 - Global Tint : 全局色彩
- Image Texture : 贴图
- Texture Swap : 底贴图(设置了这个贴图后,变成2张图片切换)
- Scatter Texture : 散射贴图 (切换呈现方式)
- Tile Ccount : 平铺计数
- Scaling : 缩放
- Scale around tile : 影响过渡时的效果,类似产生一种扭曲旋转的感觉
- Allow Compliexities :
10.1 Flicker : 闪烁
10.2 Backface Visiblility : 背面会显示出偏黑色点的色调 - Face Camera : 面向摄像机
- Use Instancing : 使用实例化
3. Transition
- Transition(过渡)
- Transiton Tint : 过渡色彩,既在过渡时,叠加的颜色
- Phase Sharpness : 过渡清晰度,这个部分调整,影响过渡是全部按模糊度出来,还是从一个方向逐渐刷过来
- Reverse Direction : 反方向
- Scatter Distance : 散射距离,值越大,越随机碎片化感觉
- Flash Amout : 闪光量,值越大,有全息的感觉(幻彩)
- Start Location : 开始位置
- Scaling Center : 缩放中心
4. Idle
- Idle Animation : 空闲动画
空闲动画,结合过渡动画、过渡贴图、背景贴图和过渡效果,来设置循环播放的动画特效
- Idle Amount : 动画量
- Idle Speed : 动画速度
- Reverse Idle Direction : 动画方向
- Idle Noise : 动画噪点
5. Effects
- Effects : 效果
- Overbright : 曝光度
- Color Aberration : 色差
2.1 Fresnel Color Sparatior : 菲涅尔分色器
2.2 Flash Color Separation : 闪光灯分色,增强全息幻彩 - Tile Clipping (Roud Clipping) : 圆型化过渡效果
6. 扫描线
- Scanlines : 效果叠加扫描线
- Scanline Intensity : 扫描线强度
- Scanline Scale : 扫描线比例
- Scanline Movement Speed : 扫描线移动速度
- Scanline UV Shift : 扫描线移位
- Use World Space for Scanlines : 世界坐标
此插件开发的Demo
Unity Sinuous Sci-Fi Signs 案例
操作Demo下载(用于控制插件的代码和一些SSFS的shader):