场景过度(非黑白交替,非用Shader)
来源:互联网 发布:易朴通讯 西安 知乎 编辑:程序博客网 时间:2024/06/11 14:57
之前写了一篇关于切换场景的黑变白的跳转,但是想更好一点,就做了下面的效果:唯一不足的地方,就是掉帧比较严重,跳转掉了20+帧,有大神如果能优化,麻烦留言告诉下怎么做
image是一个遮挡全屏的2DUI,初始Color的a为0;
代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class JumpScreenAnimator : MonoBehaviour {
public Image _image;
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
}
IEnumerator GetPictureNow()
{
yield return new WaitForEndOfFrame();
Texture2D tex = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false); //创建一个新的Texture2D
tex.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0); //读取屏幕像素,并保存
tex.Apply();
Sprite sp = Sprite.Create(tex, new Rect(0, 0, Screen.width, Screen.height), Vector2.zero); //Texture2D转换为Sprite
_image.sprite = sp;
print(sp);
StartCoroutine("spriteAnimator");
}
IEnumerator spriteAnimator()
{
_image.color = new Color(_image.color.r, _image.color.g, _image.color.b, 1);
float a = 1;
while (_image.color.a > 0)
{
a -= 0.1f;
_image.color = new Color(_image.color.r, _image.color.g, _image.color.b, a);
yield return new WaitForSeconds(0.05f);
}
}
public void JumpTestScreen()
{
SceneManager.LoadSceneAsync("Testscene");
DontDestroyOnLoad(this.gameObject);
StartCoroutine(GetPictureNow());
}
public void JumpFiveScreen()
{
SceneManager.LoadSceneAsync("FiveScene");
DontDestroyOnLoad(this.gameObject);
StartCoroutine(GetPictureNow());
}
}
- 场景过度(非黑白交替,非用Shader)
- Unity场景切换过度效果(Shader)
- unity shader:非真实感渲染
- 转载---23种设计模式(场景需要决定使用模式,非为了用而用)
- [RuntimeInitializeOnLoadMethod] 非场景非脚本初始化脚本(转自雨松mo'mo)
- [RuntimeInitializeOnLoadMethod] 非场景非脚本初始化脚本(转自雨松mo'mo)
- 非
- !非
- 【shader】渐变过度
- unity 黑白shader
- 公平锁 非公平锁 使用场景
- unity 过度条场景
- Unity使用Shader控制物体材质的透明度(Lambert版和非光照版)
- Unity Shader-非主流纹理采样研究(流光,溶解,隐身效果)
- cocos shader 之 黑白滤镜
- 【Shader】游戏屏幕黑白特效
- LINQ to SQL与LINQ to Entities场景之对照(非原创)
- 8.非关系型数据库(Nosql)之mongodb的应用场景
- C语言将字符串转为整数
- openlayers3个人学习心得之Cluster
- 发布IIS别人的电脑无法访问的解决方法(防火墙已关闭)
- MyEclipse 中build path选中不了,maven项目无法编译,maven创建的项目无法发布到tomcat
- [BZOJ1492][NOI2007]货币兑换 斜率优化DP+splay维护凸壳
- 场景过度(非黑白交替,非用Shader)
- 安卓Notification的几个常见难点
- Spark学习--持续更新
- Android数据库代码优化(2)
- 自定义圆形进度条跟随logo及数字进度
- ckfinder选中图片后 图片不能预览
- Centos下apache启动时httpd: apr_sockaddr_info_get() failed for 报错
- 简化 Mybatis 开发
- R语言学习笔记(四)