如何做出优雅的过渡效果? Dotween插件的简单介绍及示例代码

unity里面做插值动画的插件有许多,比较常见的有itween、hotween、dotween。根据大家的反馈和实际体验来说,dotween插件在灵活性、稳定性、易用性上都十分突出。这里简单介绍下它的用法,并在后文做了一些效果示例,还是不错的。 所谓”插值动画“,顾名思义就是在两个值中插入其他的值来实现动画。原理非常简单,比如想让某个物体从A地到达B地,我们只知道A和B的坐标,插值动画就可以根据”缓动函数“确定A、B间的其他值,来实现物体从A到B的”运动过程“。”缓动函数“是确定”插值“的函数
分类: 其他 发布时间: 12-30 22:40 阅读次数: 0

Unity__如何在游戏中体现贝塞尔曲线

一、简介 贝塞尔曲线是最基本的曲线,一般用在计算机 图形学和 图像处理。贝塞尔曲线可以用来创建平滑的曲线的道路、 弯曲的路径就像 祖玛游戏、 弯曲型的河流等。 一条贝塞尔曲线是由一组定义的控制点 P0到 Pn,在 n 调用它的顺序 (n = 1 为线性,2 为二次,等.)。第一个和最后一个控制点总是具有终结点的曲线。然而,中间两个控制点 (如果有的话) 一般不会位于曲线上 。   (1)贝塞尔曲线包含两个控制点即 n = 2 称为线性的贝塞尔曲线   (2)贝塞尔曲线包含三个控制点即 n =
分类: 其他 发布时间: 12-30 22:40 阅读次数: 0

Unity__Canvas Group (使点击事件不被UI屏蔽或UI的所有子对象都不参与交互)

属性: Alpha:该组UI元素的透明度。需要注意,每个UI最终的透明度是由此值和自身的alpha数值相乘得到。 Interactable:是否需要交互(勾选则可交互),同时作用于该组全部UI元素 BlcokRaycasts:如果需要图形射线(GraphicRaycaster)检测。勾选后,可将此组件作为一个射线碰撞盒。注意,不适用于Physics.Raycast。 Ignore Parent Groups:是否需要忽略父级对象中的CanvasGroup的设置。(勾选则忽略) CanvasGr
分类: 其他 发布时间: 12-30 22:40 阅读次数: 0

Unity__静态合批与动态合批

draw call是openGL的描绘次数(directX没怎么研究,但原理应该差不多) 一个简单的openGL的绘图次序是:设置颜色→绘图方式→顶点座标→绘制→结束。 每帧都会重复以上的步骤。这就是一次draw call 如果有两个model,那么需要 设置颜色→绘图方式→顶点座标A→绘制→结束。 设置颜色→绘图方式→顶点座标B→绘制→结束。 两次draw calls; 也就是说在openGl绘制前,如果色彩通道(color filter),绘图方式(shader),顶点座标(model)不
分类: 其他 发布时间: 12-30 22:39 阅读次数: 0

Shader 内置结构体SurfaceOutput

struct SurfaceOutput { half3 Albedo; // 该像素的反射率,反应了像素的基色 half3 Normal; // 该像素的法线方向 half3 Emission; // 该像素的自发光颜色,使得即便没有光照也可以物体本身也可以发出光 half Specular; // 该像素的高光指数 half Gloss; // 该像素的高光光滑度,值越大高光反射越清晰,反之越模糊 half Alpha; // 该像素的不透明度 }; -------------------
分类: 其他 发布时间: 12-30 22:39 阅读次数: 0

Unity___XLua简单运用

前段时间学习了XLua的教程,发现非常的好用,下面用一个简单的例子来使用一下Xlua,将一个加法运算的程序 热更新成减法运算 首先,我们写一个简单的加法运算 using System; using System.Collections; using System.Collections.Generic; using System.Text; using UnityEngine; using UnityEngine.UI; using XLua; public class XluaText
分类: 其他 发布时间: 12-30 22:39 阅读次数: 0

Lua__table

--table 即可当数组(假设),也可当字典 tab1 = {key1= "key1",key2= "key2"} print(tab1.key1) --输出 key1 tab2 = {key3 = 11} print(tab2.key3) --输出 11 tab3 = {"123","234"} print(tab3[2]) --输出 234 ----------------------------------------------- --table 新增item,有两种表
分类: 其他 发布时间: 12-30 22:39 阅读次数: 0

Lua__function函数

--Lua函数的定义写法 fact1 = function( n) --函数fact1等同于fact if n == 1 then return n; else return n*fact(n-1) end end --Lua的函数可加返回值也可不加返回值 function fact( n) if n == 1 then return n; else return n*fact(n-1) end end print(fact(2)) --输出2 fact
分类: 其他 发布时间: 12-30 22:38 阅读次数: 0

Lua__杂项

--特别字段 arg,会把传入的参数封装成一个表。arg就表示一个表,arg表的内容除了原先传入的参数,还多了一个传入参数的数量。 average() average(10) average(1,30) average(3,8,90) average(5,67,7,8,3) function average(...) print(arg[1]) end ----------------------------------------------------- function ave
分类: 其他 发布时间: 12-30 22:38 阅读次数: 0

Lua_Metatable元表

--元表,元表附属于表,用于表的扩展,是更底层的东西。 --元表的作用多种多样,其中一个就是可以在对普通表操作时方法的重载,用于扩展,因此一般情况下定义好后不需要再次修改元表。 ----比如让两个表进行相加,如果没有元表的话直接相加编译器会报错的。 ----还有就是用print输出表时,是直接输出这个表的内存块名,用了元表就可以很方便的输出表的元素 tab1 = {1,2,3,4,5,6} met1 = {} tab2 = setmetatable(tab1,met1) met2 = get
分类: 其他 发布时间: 12-30 22:38 阅读次数: 0

Lua_常用的函数库

基本函数库为Lua内置的函数库,不需要额外装载 assert (v [, message]) 功能:相当于C的断言, 参数: v:当表达式v为nil或false将触发错误, message:发生错误时返回的信息,默认为"assertion failed!" -------------------------------------------------------------------------------- collectgarbage (opt [, arg]) 功能:是垃圾收集器的
分类: 其他 发布时间: 12-30 22:38 阅读次数: 0

Lua__读取指定路径下的.Lua文件

using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using XLua; public class Hotfix : MonoBehaviour { private LuaEnv luaEnv; void Awake() { luaEnv = new LuaEnv(); luaEnv.AddL
分类: 其他 发布时间: 12-30 22:37 阅读次数: 0

第二题:两数相加

问题描述 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 方法思路 我们使用变量来跟踪进位,并从包含最低有效位的表头开始模拟逐位相加的过程。
分类: 其他 发布时间: 12-30 22:37 阅读次数: 0

第四题:两数相除

问题描述 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。 示例 1: 输入: dividend = 10, divisor = 3 输出: 3 示例 2: 输入: dividend = 7, divisor = -3 输出: -2 说明: 被除数和除数均为 32 位有符号整数。 除数不为 0。 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2
分类: 其他 发布时间: 12-30 22:37 阅读次数: 0

第五题:实现strStr()函数

问题描述 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack = “hello”, needle = “ll” 输出: 2 示例 2: 输入: haystack = “aaaaa”, needle = “bba” 输出: -1 说明: 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在
分类: 其他 发布时间: 12-30 22:36 阅读次数: 0

第七题:报数

问题描述 报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1 11 21 1211 111221 1 被读作 “one 1” (“一个一”) , 即 11。 11 被读作 “two 1s” (“两个一”), 即 21。 21 被读作 “one 2”, “one 1” (“一个二” , “一个一”) , 即 1211。 给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。 注意:整数顺序将表示为一个字符串。 示例 1: 输入: 1
分类: 其他 发布时间: 12-30 22:36 阅读次数: 0

第八题:路径求和

问题描述 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1 返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5-
分类: 其他 发布时间: 12-30 22:36 阅读次数: 0

第九题:求众数

问题描述 给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2 JavaScript代码展示 var majorityElement = function(nums) { const record = new Map(); for (let i = 0; i < num
分类: 其他 发布时间: 12-30 22:36 阅读次数: 0

第十题:爬楼梯

问题描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 3. 1 阶 + 1 阶 + 1 阶 4. 1 阶 + 2 阶 5. 2 阶 + 1 阶 解决方法 方法一: 不需要用数组存下来所有数据:8ms class Solut
分类: 其他 发布时间: 12-30 22:35 阅读次数: 0

第十一题:x的平方根

题目描述 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。 运用C#语言解决方式 二分法,时间复杂度(logn),有个坑要注意一下。。。平方后的整型变量的值可能会超出范围2147483647,所以我在对比的时候加上了强制转换long型
分类: 其他 发布时间: 12-30 22:35 阅读次数: 0