Unity插件Paint in 3d pro是如何实现Runtime Undo和Redo的
目录
神作,不用多解释
P3dStateManager,和
P3dPaintableTexture
开源或者被开源的世界
HitScene.cs
InputManager.cs
看看文档
看看例子
看看代码实现
神作,不用多解释
学习这个项目,不但能让你掌握基础的3d实战知识,还能了解框架,了解Editor扩展开发,了解C#语法
“当然,好处多多,难道一个坏处都没有,应该就是上手门槛挺高吧”
国内这种资源也很容易获得
要做一个画画工具,或者APP
Undo是最基本
这里稍微分析一下如何实现:(然而并没有分析)
这是Pro版本,和几年前普通的Paint in 3d也完全不可比
几年前还只能Editor Undo,不能runtime回退
不过当年的Hist—manager还是做得挺巧妙,今天我们一起来看下Pro版本的History如何做的呢》》???
现在的Paint in 3d pro版本除了内核换成gpu绘制,架构大改之外,还加了很多功能和很多例子:
其中一个例子就是In Game的Undo和Redo
看了一下,调用方法很简单
P3dStateManager.UndoAll();
主要依赖
P3dStateManager,和
P3dPaintableTexture
P3dStateManager 本身并没有多少代码,也不是核心。。。。。。
至于,具体回退+Redo的分析和实现,之后想起再说吧,谢谢阅读
开源或者被开源的世界
回滚和历史草的关键还是一开始那个图
主要的绘制实现,以及回滚绘制的实现,还是通过上面P3dPaintable Texture这个类(组件)
其中Undo有3个选项
1 是 None, 这有点废话;
2 是Texture,反正选了没有用,应该是要特别指定;
3 是记录本地操作命令(有点像帧同步),
“”极像或者100%相同都是严重问题,回滚按2下,能回退一次,也只能回退一次,之后回滚按多少下也没作用,只有第一次有效(嗨,你个帧同步)“”
总之就是有各种bug(嗨,你个软件开发),不过还好有源码
后来发现,还是自己造成的bug
用了imgui和paint3d冲突,其实ugui也冲突,只是人家的框架有封装
HitScene.cs
InputManager.cs
至于怎么判断是否点击在ui上,避免2d和3d的冲突,可参考:
https://blog.csdn.net/avi9111/article/details/116568250?spm=1001.2014.3001.5502
开源最大的作用不是分享,不是共享,不是灵活,不是集思广益,真正的开源的作用是修bug
一个人修,或一个团队修还真修不好;
还真的需要一个天才做架构,然后一堆搬砖基于开源修bug,和改善流程,虽然我不想承认自己是搬砖的
也唯有这样才能把一个产品做好
而扑街的产品遍地都是,高达99%都是平庸的产品
但又因为开源,使得整个软件“世界”都是平的,总有上千上万个产品
所以能形成一个好的开源生态,至少能出现上千个好产品
这就是开源神作的本质
看看文档
看看例子
注意的就是默认绘制颜色是白色,shader texture默认白色,会感觉没效果,改下颜色就好了,也不需要怎么配置,就能做出3d绘制的效果,基于Paint IN 3d pro这个插件
看看代码实现
很多,罄竹难书,自己看源码
Unity插件Paint in 3d pro是如何实现Runtime Undo和Redo的相关推荐
- unity 使用paint in 3d实现画板效果
签名或者玩你画我猜啥的会用到 网络上的教程少之又少.今天整理一下自己摸索的经验弄个傻瓜式教程 建立一个Cube.p3d插件有一个默认的画板模型.引用上去(如果画板是黑的就加一个打光.刚开始研究这个插件 ...
- AR+LBS街景实景红包PokemonGo游戏捉妖夺宝营销解决方案暨百度高德地图Unity插件SDK
1.AR+LBS街景实景红包.游戏.营销等解决方案 2.AR街景实景+百度高德LBS地图Unity插件SDK [3D/AR/VR/全息互动投影视觉开发] 近年来,全球玩家对于知名游戏Pokemon G ...
- unity 3d 中paint in 3d插件的简单使用
首先去AssetStore搜一下paint in 3d 接下来步入正题 新建个工程 将下载下来的包导入unity中 导入后,随便打开一个示例场景 本文打开的是MousePainting 运行后可以左键 ...
- unity3D中paint in 3D插件的简单使用
首先去AssetStore搜一下paint in 3d 新建个工程 将下载下来的包导入unity中 导入后,随便打开一个示例场景 本文打开的是MousePainting 运行后可以左键随意涂色 默认涂 ...
- 处理Unity中使用HTC VIVE PRo的SRWork插件若干问题
一.介绍 HTC VIVE Pro版本的头盔显示器可以使用一个叫SRWork的工具轻松制作混合现实功能的案例,如图1所示:功能很强大,目前据我写 图1 这篇文真为止已经更新到了SRWork0.9.7. ...
- Paint in 3D 基本使用方法(Unity 3D)
不涉及Paint in 3D使用说明书中的内容,比如:给预要绘制图形的物体添加碰撞体,添加可绘制脚本,添加画笔管理器. 本文内容包括: Paint in 3D的目标物体的绘画内容更新,清除参数Text ...
- unityar自动识别人脸_三款Unity插件带您玩转人脸识别与模拟
原标题:三款Unity插件带您玩转人脸识别与模拟 若想让游戏或电影中的虚拟角色表现得更加真实,面部表情是至关重要的.人脸识别技术则借助真人表演来为虚拟角色赋予丰富的表情与面部动作,小至皱眉带动眼部肌肉 ...
- Asset Store上常用的40个Unity插件汇总——进阶开发者必备Unity插件
上篇文章着重介绍了Unity Asset Store(Unity资源商店)上一些超棒的资源与素材. unity老司机的资源推荐与常用插件汇总合集 - 简书 Unity插件资源购买小技巧 - 简书 本篇 ...
- Unity 插件使用笔记
目录 AssetBundle AssetBundle Manager EasySave UGUI-Edito Unity Favourites Panel Curvy Spline 流体插件Obi F ...
最新文章
- 【转】Python操作MongoDB数据库
- http --- 缓存
- ubuntu 安装 swoole 和mac 安装swoole 扩展
- arcgis server mysql_ArcGIS Server 10.1发布要素服务时遇到的数据库注册问题总结 (二)...
- java 关于JDBC和DAO模式使用
- python画圆填色橙色_基于TPC-C基准的Python ORM的性能测试详解
- 【离散数学笔记】计数原理:解决计数问题的基本方法
- spring boot+mybatis+quartz项目的搭建
- OpenCV——Roberts算子
- java 订单编号_生成订单编号 用java怎么处理
- AFTN和SITA报文简介
- 我的团长我的团第十六集
- 电箱吉他与原声吉他的区别在哪里?初学者应该选哪个呢?
- 综合能源服务认证的定义,综合能源服务认证意义
- 中国工业内窥镜市场全景调研与投资前景预测报告2022-2028年
- Authorization loop detected on Conduit with realm “WSMAN“
- 修改华为路由器lan端口
- 怎样判断计算机硬盘损坏,检测硬盘是否损坏的方法来了,这里有四种判断方法!...
- 浙江大学机器学习(胡浩基)课程学习笔记一:概述与支持向量机
- cuda安装正常,nvcc -V却没有任何显示