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 (整体)
  1. Two Sided : 是否正反2面都可以显示
  2. Blending Mode : 混合模式,指的是颜色与底色是如何混合的
    2.1 Additive 相加
    2.2 Alpha Blended 透明度混合
    2.3 Soft Additive 软件相加
    2.4 Multiply 相乘
    2.5 Invert 反方
    2.6 Solid 实心
  3. Global Tint : 全局色彩
  4. Image Texture : 贴图
  5. Texture Swap : 底贴图(设置了这个贴图后,变成2张图片切换)
  6. Scatter Texture : 散射贴图 (切换呈现方式)
  7. Tile Ccount : 平铺计数
  8. Scaling : 缩放
  9. Scale around tile : 影响过渡时的效果,类似产生一种扭曲旋转的感觉
  10. Allow Compliexities :
    10.1 Flicker : 闪烁
    10.2 Backface Visiblility : 背面会显示出偏黑色点的色调
  11. Face Camera : 面向摄像机
  12. Use Instancing : 使用实例化
3. Transition
  • Transition(过渡)
  1. Transiton Tint : 过渡色彩,既在过渡时,叠加的颜色
  2. Phase Sharpness : 过渡清晰度,这个部分调整,影响过渡是全部按模糊度出来,还是从一个方向逐渐刷过来
  3. Reverse Direction : 反方向
  4. Scatter Distance : 散射距离,值越大,越随机碎片化感觉
  5. Flash Amout : 闪光量,值越大,有全息的感觉(幻彩)
  6. Start Location : 开始位置
  7. Scaling Center : 缩放中心
4. Idle
  • Idle Animation : 空闲动画

空闲动画,结合过渡动画、过渡贴图、背景贴图和过渡效果,来设置循环播放的动画特效

  1. Idle Amount : 动画量
  2. Idle Speed : 动画速度
  3. Reverse Idle Direction : 动画方向
  4. Idle Noise : 动画噪点
5. Effects
  • Effects : 效果
  1. Overbright : 曝光度
  2. Color Aberration : 色差
    2.1 Fresnel Color Sparatior : 菲涅尔分色器
    2.2 Flash Color Separation : 闪光灯分色,增强全息幻彩
  3. Tile Clipping (Roud Clipping) : 圆型化过渡效果
6. 扫描线
  • Scanlines : 效果叠加扫描线
  1. Scanline Intensity : 扫描线强度
  2. Scanline Scale : 扫描线比例
  3. Scanline Movement Speed : 扫描线移动速度
  4. Scanline UV Shift : 扫描线移位
  5. Use World Space for Scanlines : 世界坐标
此插件开发的Demo


Unity Sinuous Sci-Fi Signs 案例


操作Demo下载(用于控制插件的代码和一些SSFS的shader):