如何做出优雅的过渡效果? Dotween插件的简单介绍及示例代码
unity里面做插值动画的插件有许多,比较常见的有itween、hotween、dotween。根据大家的反馈和实际体验来说,dotween插件在灵活性、稳定性、易用性上都十分突出。这里简单介绍下它的用法,并在后文做了一些效果示例,还是不错的。 所谓”插值动画“,顾名思义就是在两个值中插入其他的值来实现动画。原理非常简单,比如想让某个物体从A地到达B地,我们只知道A和B的坐标,插值动画就可以根据”缓动函数“确定A、B间的其他值,来实现物体从A到B的”运动过程“。”缓动函数“是确定”插值“的函数
Unity__如何在游戏中体现贝塞尔曲线
一、简介 贝塞尔曲线是最基本的曲线,一般用在计算机 图形学和 图像处理。贝塞尔曲线可以用来创建平滑的曲线的道路、 弯曲的路径就像 祖玛游戏、 弯曲型的河流等。 一条贝塞尔曲线是由一组定义的控制点 P0到 Pn,在 n 调用它的顺序 (n = 1 为线性,2 为二次,等.)。第一个和最后一个控制点总是具有终结点的曲线。然而,中间两个控制点 (如果有的话) 一般不会位于曲线上 。 (1)贝塞尔曲线包含两个控制点即 n = 2 称为线性的贝塞尔曲线 (2)贝塞尔曲线包含三个控制点即 n =
Unity__Canvas Group (使点击事件不被UI屏蔽或UI的所有子对象都不参与交互)
属性: Alpha:该组UI元素的透明度。需要注意,每个UI最终的透明度是由此值和自身的alpha数值相乘得到。 Interactable:是否需要交互(勾选则可交互),同时作用于该组全部UI元素 BlcokRaycasts:如果需要图形射线(GraphicRaycaster)检测。勾选后,可将此组件作为一个射线碰撞盒。注意,不适用于Physics.Raycast。 Ignore Parent Groups:是否需要忽略父级对象中的CanvasGroup的设置。(勾选则忽略) CanvasGr
Unity__静态合批与动态合批
draw call是openGL的描绘次数(directX没怎么研究,但原理应该差不多) 一个简单的openGL的绘图次序是:设置颜色→绘图方式→顶点座标→绘制→结束。 每帧都会重复以上的步骤。这就是一次draw call 如果有两个model,那么需要 设置颜色→绘图方式→顶点座标A→绘制→结束。 设置颜色→绘图方式→顶点座标B→绘制→结束。 两次draw calls; 也就是说在openGl绘制前,如果色彩通道(color filter),绘图方式(shader),顶点座标(model)不
Shader 内置结构体SurfaceOutput
struct SurfaceOutput { half3 Albedo; // 该像素的反射率,反应了像素的基色 half3 Normal; // 该像素的法线方向 half3 Emission; // 该像素的自发光颜色,使得即便没有光照也可以物体本身也可以发出光 half Specular; // 该像素的高光指数 half Gloss; // 该像素的高光光滑度,值越大高光反射越清晰,反之越模糊 half Alpha; // 该像素的不透明度 }; -------------------
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
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,有两种表
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
Lua_Metatable元表
--元表,元表附属于表,用于表的扩展,是更底层的东西。
--元表的作用多种多样,其中一个就是可以在对普通表操作时方法的重载,用于扩展,因此一般情况下定义好后不需要再次修改元表。
----比如让两个表进行相加,如果没有元表的话直接相加编译器会报错的。
----还有就是用print输出表时,是直接输出这个表的内存块名,用了元表就可以很方便的输出表的元素
tab1 = {1,2,3,4,5,6}
met1 = {}
tab2 = setmetatable(tab1,met1)
met2 = get
Lua_常用的函数库
基本函数库为Lua内置的函数库,不需要额外装载 assert (v [, message]) 功能:相当于C的断言, 参数: v:当表达式v为nil或false将触发错误, message:发生错误时返回的信息,默认为"assertion failed!" -------------------------------------------------------------------------------- collectgarbage (opt [, arg]) 功能:是垃圾收集器的
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
第五题:实现strStr()函数
问题描述 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack = “hello”, needle = “ll” 输出: 2 示例 2: 输入: haystack = “aaaaa”, needle = “bba” 输出: -1 说明: 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在
第十一题:x的平方根
题目描述 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。 运用C#语言解决方式 二分法,时间复杂度(logn),有个坑要注意一下。。。平方后的整型变量的值可能会超出范围2147483647,所以我在对比的时候加上了强制转换long型
今日推荐
周排行