unity3d

如何通过Timeline的形式实现技能编辑器

只愿长相守 提交于 2020-11-26 08:25:27
1)如何通过Timeline的形式实现技能编辑器 ​2)Addressable如何通过Group Name获得Group下的Key 3)Unity如何获取Sprite在Sprite Packer中的UV值 4)AnimatorController在UnityEditor下,如何获取所有的状态名 5)Unity为UGUI的Mask做了怎样的处理 这是第228篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。 UWA 问答社区: answer.uwa4d.com UWA QQ群2:793972859(原群已满员) Editor Q:项目需要通过Timeline的形式实现做个技能编辑器,时间轴的形式是怎么实现的?​整个的技能编辑器有没有相关的参考? A1:建议学习Timeline的使用方法以及传统技能编辑器是怎么做的,然后再想想看如何结合。下面这篇文章可以先读一读: 《ACT技能编辑器的制作经验分享》 该问答由UWA提供 A2:可参考官方的Timeline扩展,2017年Unite也有个相关的主题: https://assetstore.unity.com/packages/essentials/default-playables-95266 感谢羽飞@UWA问答社区提供了回答 A3:第一,时间轴的形式是怎么实现的?

升级到Unity 5.4

徘徊边缘 提交于 2020-11-26 04:24:17
升级到Unity 5.4 当将项目从Unity 5.3升级到Unity 5.4时,有一些更改,您应该注意哪些可能会影响您现有的项目。 网络:多人服务API更改 许多更改联网API 。 网络:WebRequest不再实验 该WebRequest接口已经从推广UnityEngine.Experimental.Networking到UnityEngine.Networking。使用统一5.2和5.3的项目UnityWebRequest将必须被更新。 场景视图:音频映射不会自动应用 与图像效果ImageEffectTransformsToLDR属性将如果发现不再直接应用到场景图。一个新的属性存在应用效果的场景观点:ImageEffectAllowedInSceneView。5.4标准资产已升级,以反映这种变化。 着色器:重命名的变量 为了一致性,重命名了一些内置着色器变量: _Object2World 和 _World2Object 现在 unity_ObjectToWorld 和 unity_WorldToObject _World2Shadow 现在 unity_WorldToShadow [0] , _World2Shadow1 是 unity_WorldToShadow [1] 等。 _LightMatrix0 现在 unity_WorldToLight

使用Unity实现VR中在黑板上写字(升级篇)(二)----- 加入黑板擦

為{幸葍}努か 提交于 2020-11-26 04:19:18
黑板擦的功能其实和画笔是一样的,只是黑板擦设置的颜色是画板最原始的颜色,而笔设置的是其他的颜色。 所以最大的不同时,当手柄握住黑板擦时和握住笔时的函数实现是不一样的;实现这个功能之后,黑板擦的擦掉功能将在后续的篇章中和画笔一起完成; 可以看到不管黑板擦以什么角度开始靠近画板,最终这个黑板擦一定是和画板平行的; 先看看画板的坐标系: 再看看黑板擦的坐标系: 也就是说不管黑板擦以何种旋转角度(Rotation)靠近黑板最终的结果就是:黑板擦的transform.up指向画板的 -transform.forward方向;而在靠近的过程中,根据靠近的距离,我们把这个Rotation进行插值就可以了; 现在的问题就是什么时候开始插值呢?The Lab中的实现是,当黑板檫的中心点与画板的距离是黑板擦长边的0.5的时候,就开始插值,什么时候结束呢?最简单的就是0的时候,但是因为我的黑板擦底部有个0.02m的黑色擦布,所以我的是0.02m时结束; 因此首先需要写一个映射函数: public static class Helper { /// <summary> /// 用于比较两个Color32类型是不是一样 /// </summary> /// <param name="origin"></param> /// <param name="compare"></param> ///

[Shader2D]漩涡效果

对着背影说爱祢 提交于 2020-11-26 03:56:42
1:效果图 2:源码 Shader "Custom/uiblood" { Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _CloudTex("噪声",2D) ="white"{} _Color ("Tint", Color) = (1,1,1,1) _StencilComp ("Stencil Comparison", Float) = 8 _Stencil ("Stencil ID", Float) = 0 _StencilOp ("Stencil Operation", Float) = 0 _StencilWriteMask ("Stencil Write Mask", Float) = 255 _StencilReadMask ("Stencil Read Mask", Float) = 255 _ColorMask ("Color Mask", Float) = 15 } SubShader { Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" "CanUseSpriteAtlas"="True" }

关于Camera.activeTexture和Camera.targetTexture的疑问

安稳与你 提交于 2020-11-25 09:36:02
1)关于Camera.activeTexture和Camera.targetTexture的疑问 ​2)如何降低动画文件的浮点数精度 3)使用EasyMovieTexture在Android播放视频失败 4)模型顶点色(Color)如何去除 5)多层3D场景寻路方案探讨 这是第227篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。 UWA 问答社区: answer.uwa4d.com UWA QQ群2:793972859(原群已满员) Rendering Q:一直有个疑惑,Camera.activeTexture和Camera.targetTexture在Get的时候,Get到的是一个RenderTexture吗? 我知道这两个的区别是一个只能获得当前所正在渲染的RenderTexture,一个是既可以获得也可以设置渲染目标,但这样activeTexture有什么必要性呢? 是我对这两个的理解有错误吗?还有大家平时说的Backbuffer,在我渲染目标一直是屏幕的时候,这两个方法获得的都是Backbuffer吗? A:第一个问题:Camera.targetTexture必须在相机指定Render Target才会非null,Camera.activeTexture获取到的值和调用的时机有关系

EasyTouch的使用(一)

℡╲_俬逩灬. 提交于 2020-11-25 08:02:26
情景: 用unity开发游戏的时候,有时候想控制物体移动,但是发现做按钮太麻烦了,就想着又没有插件可以用,后来发现了easytouch,发现挺不错的,就拿过来用了,这里分享一下easytouch的使用吧 EasyTouch的初步使用 1. 首先我们得先把easytouch下载下来,这里有几个下载地址: (1)官网:https://assetstore.unity.com/packages/tools/input-management/easy-touch-5-touchscreen-virtual-controls-3322 (2)云盘:链接:https://pan.baidu.com/s/1J21-g4Ii1m5vbB3gLHfHgg 密码:z6to 2. 打开我们的Unity工程,导入EasyTouch插件 3. 引入结束后,我们就可以在场景中使用了 4. 我们这里做一个测试场景,用我们的easytouch做一个控制胶囊移动的demo 5. 我们在场景添加easytouch的虚拟摇杆组件 6. 我们可以切换成2D视图去调整虚拟摇杆的位置 7.这是虚拟摇杆的属性 8. OK,如果我们要控制物体移动的话,只需做几个操作 9. 下图的属性是设置物体沿X轴方向水平移动 10. 如果我们只需要物体在平面移动的话,垂直方向设置成Z轴就可以了 这样,我们运行项目

Unity 游戏框架搭建 2019 (九~十二) 第一章小结&第二章简介&第八个示例

不羁的心 提交于 2020-11-22 06:47:03
第一章小结 为了强化教程的重点,会在合适的时候进行总结与快速复习。 第二章 简介 在第一章我们做了知识库的准备,从而让我们更高效地收集示例。 在第二章,我们就用准备好的导出工具试着收集几个示例,这些示例中有的是我们后续库的基础工具,也有的是在项目中非常实用的小工具,还有一些示例是实践了在框架搭建方向上非常重要的 C# 语法知识。 第二章大纲如下。 第八个示例(一) 在之前,我们完成了一个导出的功能。但是在完成这个功能的过程中,我们也遇到了一些问题。我们回忆一下,在《MenuItem 复用》的这篇文章中,我们想对如下代码进行复用。 using System; #if UNITY_EDITOR using UnityEditor; #endif using UnityEngine; namespace QFramework { public class ExportUnityPackage : MonoBehaviour { #if UNITY_EDITOR [MenuItem("QFramework/4.导出 UnityPackage")] private static void MenuClicked() { var assetPathName = "Assets/QFramework"; var fileName = "QFramework_" + DateTime.Now

帧同步(LockStep)该如何反外挂

痞子三分冷 提交于 2020-11-22 06:01:41
在中国的游戏环境下,反挂已经成为了游戏开发的重中之重,甚至能决定一款游戏的生死,吃鸡就是一个典型的案例。 目前参与了了一款动作射击的MOBA类游戏的开发,同步方案上选择了帧同步技术(LockStep而非snapshots以下同)。那么就有很多人担心起来,客户端会跑全部逻辑帧同步该如何反外挂,和状态同步有什么区别呢? 首先我们来分析一下手游的风险和外挂的分类,这里推荐腾讯游戏安全中心的文章,有着非常详细深入的介绍。 手游的风险: • 静态修改文件:将游戏解包修改资源 ,配置,代码等之后再重新打包 ○ 修改资源,例如替换游戏的贴图做广告,修改玩家碰撞资源 或删除部分关键资源使玩家可以作弊等 ○ 修改代码,直接修改游戏代码,实现无敌,免CD,无限伤害等等 ○ 修改配置,修改策划配表等 • 动态篡改逻辑:通过注入和钩子的方式,在游戏运行时修改游戏代码,修改游戏内存等 ○ 修改代码,运行时注入进程直接修改游戏代码或者钩住关键逻辑函数修改逻辑,实现无敌,免CD,无限伤害等等 ○ 修改内存,例如烧饼,葫芦侠等修改器,在游戏运行时修改堆栈和全局变量等 • 游戏协议 ○ 篡改游戏协议,直接修改协议的内容,修改结算结果,修改伤害数值,修改血量等等 ○ 重复游戏协议,例如多次重复伤害协议 • 其他,按键精灵。脚本宏,盗号,恶意发言,打金工作室等,这些和同步技术无关,暂不做详细讨论 外挂的分类 :

帧同步(LockStep)该如何反外挂

回眸只為那壹抹淺笑 提交于 2020-11-22 01:46:44
在中国的游戏环境下,反挂已经成为了游戏开发的重中之重,甚至能决定一款游戏的生死,吃鸡就是一个典型的案例。 目前参与了了一款动作射击的MOBA类游戏的开发,同步方案上选择了帧同步技术(LockStep而非snapshots以下同)。那么就有很多人担心起来,客户端会跑全部逻辑帧同步该如何反外挂,和状态同步有什么区别呢? 首先我们来分析一下手游的风险和外挂的分类,这里推荐腾讯游戏安全中心的文章,有着非常详细深入的介绍。 手游的风险: • 静态修改文件:将游戏解包修改资源 ,配置,代码等之后再重新打包 ○ 修改资源,例如替换游戏的贴图做广告,修改玩家碰撞资源 或删除部分关键资源使玩家可以作弊等 ○ 修改代码,直接修改游戏代码,实现无敌,免CD,无限伤害等等 ○ 修改配置,修改策划配表等 • 动态篡改逻辑:通过注入和钩子的方式,在游戏运行时修改游戏代码,修改游戏内存等 ○ 修改代码,运行时注入进程直接修改游戏代码或者钩住关键逻辑函数修改逻辑,实现无敌,免CD,无限伤害等等 ○ 修改内存,例如烧饼,葫芦侠等修改器,在游戏运行时修改堆栈和全局变量等 • 游戏协议 ○ 篡改游戏协议,直接修改协议的内容,修改结算结果,修改伤害数值,修改血量等等 ○ 重复游戏协议,例如多次重复伤害协议 • 其他,按键精灵。脚本宏,盗号,恶意发言,打金工作室等,这些和同步技术无关,暂不做详细讨论 外挂的分类 :

Unity版本使用情况统计(更新至2020年10月)

为君一笑 提交于 2020-11-21 13:53:42
引擎版本的选择对于项目的开发至关重要!自2017年11月UWA第一次发布Unity版本的使用统计报告以来,受到开发者们的广泛关注和积极反馈,便于行业人员参考并做出合理的选择。 今天我们将分享UWA统计的第七期Unity版本使用情况,于2020年5月至2020年10月之间,在UWA网站 www.uwa4d.com 上提测Unity项目的版本使用统计。 2020年5月—2020年10月版本分布 图1 以近半年的数据统计来看,如图1所示,2018.4的版本在开发团队中的使用率较高,达到60.83%;其次分别为2017.4、2019.4、2019.3和2019.2,占比分别为14.62%、6.68%、4.15%和3.25%;相比于2019年11月至2020年4月的数据统计,5.6的版本使用率已经大幅度降低;使用2019版本进行开发的项目占比有所提升。 近半年Unity版本使用趋势 图2 从近半年的使用趋势来看,如图2所示,2018.4和2017.4是开发者较为青睐的版本,其中2018.4是近半年来开发者使用率最高的版本;2018.4版本自今年5月份以来,一直继续呈较高的使用趋势;2019.4的版本在今年7月份开始有显著提升。 下面,我们再对每个系列的具体版本号做详细的分析。 近半年2019.4版本使用分布 图3 2019.4系列中,版本普及率依次为2019.4.5(18.92%)、2019