
Unity
Le_Sam
这个作者很懒,什么都没留下…
展开
-
如何在Lua上使用Dotween【便捷、易读性高】
功能介绍:1.整合Append与Insert接口,支持串行与并行动画2.支持随物体/界面等销毁而自动关闭动画3.易读性高,action的写法很直观看出具体操作内容PS:该文章部分源码依据于此在lua里实现类似unity生命周期的监听事件_Le_Sam的博客-优快云博客源码:c#namespace Game.Scripts.Common{ [XLua.LuaCallCSharp] public class DoTweenEx { pr原创 2022-05-03 11:14:59 · 2777 阅读 · 0 评论 -
Lua里实现Unity的拖拽、移入移出等响应事件
源码:C#namespace Game.Scripts.Listener{ public class BaseEventListener : MonoBehaviour { public LuaFunction func = null; public void OnFunc(PointerEventData eventData) { if (func != null) {原创 2022-05-03 10:32:29 · 1118 阅读 · 0 评论 -
在lua里实现事件监听系统
功能优势:1.事件使用2级标签【2个key值】,相比起单个key值,2级标签能够适应多种场合与情况,。2.监听的绑定已支持自动销毁,随着物体被销毁而注销事件,并不需要人为的操作,以减少bug。3.事件支持休眠与唤醒功能,在物体隐藏时不在响应事件的接收,唤醒后自动刷新数据。【该功能很好适用于MVC框架,主要给在UI界面使用,界面某个物体隐藏时理应不在刷新数据,而它显示出来时会强制更新一次数据】PS:该文章部分源码依据于此在lua里实现类似unity生命周期的监听事件_Le_Sam的博客-优快云博客正原创 2022-04-30 13:43:47 · 2965 阅读 · 0 评论 -
在lua里实现类似unity生命周期的监听事件
应用面:能用像写c#一样,在lua里实现业务功能,更好的理解lua源码:c#部分:我用的是xlua,注册方式使用[XLua.LuaCallCSharp],tolua的注册方式自行查找namespace Game.Scripts.Listener{ [DisallowMultipleComponent] [AddComponentMenu("")] // Hide in 'Add Component' menu [XLua.LuaCallCSharp] pu原创 2022-04-30 11:49:15 · 600 阅读 · 0 评论 -
Unity编辑模式下找prefab内的标签
using System;using System.Collections;using System.Collections.Generic;using System.IO;using System.Linq;using UnityEditor;using UnityEngine;public class TestTTTT : EditorWindow{ static Dictionary<int, List<GameObject>> layerDic =.原创 2022-02-11 16:56:39 · 2391 阅读 · 0 评论 -
Unity3D-场景中3D物体添加点击事件
Unity3D - 场景中3D物体添加鼠标点击事件鼠标点击3D物体触发,Unity从本质上来说有两种:一种是通过事件(event)触发,一种是通过射线(ray)判断穿过的物体触发。这两种触发的原理是不同的,不论哪种触发都必须满足触发的要求才可以,既然原理不同,触发的要求也不一样,下面详细说明一下3种不同的方式。Unity版本 5.6.2fUnity API版本 2019.1参考 Unity API:https://docs.unity3d.com/ScriptRefere...转载 2021-03-01 15:07:37 · 10906 阅读 · 3 评论 -
粒子排序插件 - Particle Effect For UGUI
转载地址;https://github.com/mob-sakai/ParticleEffectForUGUI转载 2020-11-03 10:20:34 · 1492 阅读 · 0 评论 -
Unity 合图插件 ==》【支持原图集更新】
前言:项目需要,1.需提供给美术合图集工具,2.具体图集更新功能,使得新图集不必重新拖拽定位子图解决思路:1.unity调用外部TexturePacker命令行工具,执行合图与切图2.图集内子图所定位的GUID及FileID,在API没找到相应的接口,因此从资源本身下手,通过txt方式打开,强制替换相应的ID参考文档:https://blog.youkuaiyun.com/pdw_jsp/article/details/83623150?ops_request_misc=%257B%2522re原创 2020-09-08 19:56:15 · 1106 阅读 · 0 评论 -
【ExcelExport 】,Excel转lua,json,xml开发工具
基于monkey256@qq.com所开发的ExcelExport 工程再次改版,相比旧版1.新版支持公式导出,多语言导出2.去除不必要的功能,优化核心代码主要功能1.软件说明: “一键导出” 对指定目录下所有.xlsx与.xls文件分别导出到输出目录下的客户端.lua与服务器.xml文件 “语言包导出” 关键词【Language】,检测到相应文件名时,根据不同语言导出多份.lua文件2.通过命令行启动说明: ***查看帮助界面***...原创 2020-09-08 19:36:44 · 444 阅读 · 0 评论 -
无限列表【UIGridView】应用示例
UIGridView 源码using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;//Introduction: 无限列表//Content上禁止挂载ContentSizeFilter和LayOutGroup之类组件[DisallowMultipleComponent][RequireComponent(typeof(S.原创 2020-06-08 17:45:44 · 322 阅读 · 0 评论 -
U3D_无限阶贝塞尔曲线
local Bezier = {}--【无限阶贝塞尔曲线】--@params t 整条线上对应的百分比位置{0-1}--@params node 起点,控制点1,控制点2,控制点3......,结束点--@return ret 返回对应的点/值function Bezier.BezierCurve(t, node) local vecs = node loc...原创 2020-05-06 16:06:22 · 472 阅读 · 1 评论 -
Unity向量按照某一点进行旋转
本文实例为大家分享了Unity向量按照某一点进行旋转的具体代码,供大家参考,具体内容如下一、unity的旋转首先要知道一点就是在Unity的旋转中使用过四元数进行旋转的,如果对一个物体的rotation直接赋值你会发现结果不是你最终想要的结果,这个时候我们需要去借助Quaternion来进行旋转。二、向量按照原点进行旋转用到的Unity内置方法Quaternion.AngleAxi...原创 2020-05-06 16:18:48 · 1612 阅读 · 0 评论 -
Unity__Canvas Group (使点击事件不被UI屏蔽或UI的所有子对象都不参与交互)
属性:Alpha:该组UI元素的透明度。需要注意,每个UI最终的透明度是由此值和自身的alpha数值相乘得到。Interactable:是否需要交互(勾选则可交互),同时作用于该组全部UI元素BlcokRaycasts:如果需要图形射线(GraphicRaycaster)检测。勾选后,可将此组件作为一个射线碰撞盒。注意,不适用于Physics.Raycast。Ignore Parent Gro...转载 2018-12-09 11:55:50 · 4437 阅读 · 0 评论 -
Unity__查找资源被哪里引用了
Unity提供了一个方法 AssetDatabase.GetDependencies(),但是它只能查找这个资源引用了那些资源。 但是我想要的是查找某个资源被那些资源引用了,这是两种相反的查找公式。 其实网上也有很多这样的插件了,似乎代码量都太多了。昨天晚上加班时脑洞打开,想到了一个简单的方法。通过GUID全局搜索匹配。。几行代码就能搞定~~如下图所示,右键随便选择一个资源,点击 Find R...转载 2018-12-09 11:29:22 · 2760 阅读 · 0 评论 -
Unity__如何在游戏中体现贝塞尔曲线
一、简介贝塞尔曲线是最基本的曲线,一般用在计算机 图形学和 图像处理。贝塞尔曲线可以用来创建平滑的曲线的道路、 弯曲的路径就像 祖玛游戏、 弯曲型的河流等。 一条贝塞尔曲线是由一组定义的控制点 P0到 Pn,在 n 调用它的顺序 (n = 1 为线性,2 为二次,等.)。第一个和最后一个控制点总是具有终结点的曲线。然而,中间两个控制点 (如果有的话) 一般不会位于曲线上 。...转载 2018-12-08 16:51:22 · 1044 阅读 · 1 评论 -
Unity__PoolManager对象池插件
PoolManager对象池插件下载地址:https://download.youkuaiyun.com/download/le_sam/10710741示例如下: SpawnPool spawnPool; PrefabPool prefabPool; void InitPoolManager() { spawnPool = this.gameObje...原创 2018-10-10 12:43:06 · 1315 阅读 · 0 评论 -
如何做出优雅的过渡效果? Dotween插件的简单介绍及示例代码
unity里面做插值动画的插件有许多,比较常见的有itween、hotween、dotween。根据大家的反馈和实际体验来说,dotween插件在灵活性、稳定性、易用性上都十分突出。这里简单介绍下它的用法,并在后文做了一些效果示例,还是不错的。所谓”插值动画“,顾名思义就是在两个值中插入其他的值来实现动画。原理非常简单,比如想让某个物体从A地到达B地,我们只知道A和B的坐标,插值动画就可以根据...转载 2018-12-08 16:15:52 · 2726 阅读 · 0 评论 -
SpriteRenderer(场景_UI)和Image(Canvas_UI)的区别
Unity3D最初是一个3D游戏引擎,而从4.3开始,系统加入了Sprite组件,Unity也终于有了2D游戏开发的官方解决方案。4.6更是增加了新的UI系统uGUI,使得使用Unity开发2D游戏效率非常高。那么对于从事2D游戏开发的同学来说,想必都曾经遇到过2D元素渲染的选择问题。大家都知道,Unity可以将导入的图片分割为若干Sprite,然后通过SpriteRenderer组件或者uG...转载 2018-12-05 16:03:10 · 4611 阅读 · 1 评论 -
Unity优化之GC——(一)认识堆(heap)&栈(stack)
尽管在.NET framework 下我们并不需要担心内存管理和垃圾回收(GarbageCollection),但是我们还是应该了解它们,以优化我们的应用程序。 同时还需要具备一些基础的内存管理工作机制的知识,这样有助于解释日常程序编写中的变量的行为。 本文将学习和理解堆和栈的基本知识,变量类型以及为什么一些变量能够按照它们自己的方式工作。在.NET framework环境下,当我们执行代...转载 2018-12-05 15:20:58 · 3412 阅读 · 3 评论 -
Unity优化之GC——(二)合理优化Unity的GC
转载请标明出处http://www.cnblogs.com/zblade/ 最近有点繁忙,白天干活晚上抽空写点翻译,还要运动,所以翻译工作进行的有点缓慢 =。= PS: 最近重新回来更新了一遍,文章还是需要反复修改才能写的顺畅,多谢各位的支持 :D 本文续接前面的unity的渲染优化,进一步翻译Unity中的GC优化,英文链接在下:英文地址介绍: 在游戏运行的时候...转载 2018-12-05 14:42:58 · 381 阅读 · 0 评论 -
免费UNITY资源的超级列表
原文地址:http://www.procedural-worlds.com/blog/best-free-unity-assets-categorised-mega-list/包含免费UNITY资源的超级列表这篇文章包含大量高品质的免费工具和模型来帮助你开发Unity游戏 - 拥有超过150项资源,并且一直在增长!同时我也在制作一个 低价(低于$ 15) 清单-这些都是我用过或社区推荐...转载 2018-11-23 15:25:38 · 4069 阅读 · 0 评论 -
Unity__Android打包爬坑日记
最近接了一个直播的SDK,准备集成现有的项目里面,由于之前的项目在Android打包时用的是Gradle,而直播SDK要求使用Internal,因此遇到了不少的坑,下面就让我分别罗列出来: 坑1:IOException: Win32 IO returned ERROR_BROKEN_PIPE关于这个网上有不少的解决办法,我的操作是这样,升级JDK到64位就行了。网上有人说把项目移到C盘...原创 2019-02-22 14:40:55 · 543 阅读 · 0 评论 -
Unity-自适应弹窗(根据文字长度改变Toast)
方式一: IEnumerator DelayHideToast(Text text) { CharacterInfo info = new CharacterInfo(); text.font.RequestCharactersInTexture(text.text, 30); int allTextWidth = 0; ...原创 2018-11-16 15:21:49 · 1819 阅读 · 0 评论 -
AssetBundle__Unity 依赖打包
如果只是模型的不同,贴图与材质相同下。那么打AB包时,先把共用的贴图和材质设置好打包标签,接着设置好模型的打包标签。Unity在打AB包时,会自动识别不同的模型是否有共用的贴图材质。打包出来的效果如右图,只有一份贴图材质,避免了重复。左边的情况是因为没有对贴图材质设置打包标签,Unity不会对其识别。 同理,在游戏中加载AB包时,材质贴图包与模型包要一起加载。只加载模型包...原创 2018-12-20 11:50:16 · 979 阅读 · 0 评论 -
Unity__TexturePacker使用图集来减少UI的开销
在游戏开发过程中,图片的使用是必不可少的,尤其是在UI部分,往往会使用大量的图片。如果每一张图片都是单独使用的话,实际上会对性能造成很大的损耗的。这时候我们往往是把需要的图片资源进行分类,然后按照需要打包成对应的图集。这样会方便管理和更新迭代,同时也减少了很多的性能开销。假如你一个UI界面使用了10张不同的图片,那么加载这个界面的时候,就会同时对10个图片资源进行渲染,而如果这10张图片是...转载 2018-12-09 15:28:43 · 687 阅读 · 1 评论 -
Unity3D中的 Update、Lateupdate和FixedUpdate
MonoBehaviour.Update 更新 当MonoBehaviour启用时,其Update在每一帧被调用。 MonoBehaviour.FixedUpdate 固定更新 当MonoBehaviour启用时,其 FixedUpdate在每一帧被调用。 处理Rigidbody时,需要用FixedUpdate代替...转载 2017-06-22 11:45:49 · 576 阅读 · 0 评论 -
Unity3D_类捕鱼项目,控制碰撞墙体之间距离以适配不同机型
背景,最近接手一个项目,类捕鱼游戏,需求是子弹发射后可以在四周墙体内反弹,关于反弹可以参考我另一篇文章。由于不同机型屏幕高宽比不同,所以要适配墙体之间的距离。众所周知,U3d的Camera相机在视口发生改变时,上下边缘是不变,只有左右边缘会互相靠近或远离。手机屏幕同理,宽屏手机下左右边缘相继较远,平板手机则是左右边缘相继较近。因此知道手机屏幕分辨率后,接下来只要改变黄色箭头的墙体就行了...原创 2019-09-26 20:22:49 · 662 阅读 · 0 评论 -
Unity3D_类捕鱼项目,子弹反弹效果实现
子弹反弹示意图如下:1.墙体与子弹均为碰撞体2.前提条件:需要知道子弹前进方向向量,墙体方向向量3.计算简易过程,黄色为子弹方向向量,计算出与墙的夹角,根据入射角等于反射角算出橙色方向向量。此时只是子弹方向改变了,接下来还要算出位置的偏移量,根据与墙夹角与子弹本身的大小由三角函数sin/cos算出偏移量,最终效果如红色箭头。代码:-- 子弹反弹,ColliderObj:碰撞墙体...原创 2019-09-26 19:59:21 · 2907 阅读 · 2 评论 -
UGUI __自動佈局
Auto Layout SystemAuto Layout System 是基於Rect TransformLayout System 之上的系統,自動調整一個或多個的元素大小、位置、間格,又分為 Layout Controllers(父物件) 與 Layout Elements(子物件)兩部分,一個簡單的 Auto Layout 架構如下 (此處介紹理論,實作留到後面)...转载 2019-06-17 11:30:00 · 313 阅读 · 0 评论 -
Unity 接入Facebook
最近由于项目需要,接入Fackbook。原先的已经有登录模块了,不过是shaderSDK的,考虑到国内这些插件会对数据动手脚,只有换掉了。回到正题,接入的过程还是遇到不少问题,先整理下我的资料,以下Fackbook都简称为FB1.unity 5.6.5f12.jdk 1.8.0_1443.SDK 25.2.54.fackbook7.15.1此外还装了5.friebase 5.4...原创 2019-05-27 14:51:07 · 2807 阅读 · 2 评论 -
Unity查看当前内存使用情况(针对移动端开发)
Unity3D为我们提供了一个强大的性能分析工具Profiler。今天我们就使用Profiler来详细分析一下官方例子AngryBots的内存使用信息数据。首先打开Profiler选择Memory选项,在游戏运行的某一帧查看Detailed选项数据(Simple模式的数据很直观,可以知道内存大体被哪部分占用了),如下图所示:选中后,unity会自动获取这一帧的内存占用数据项,主要分为...转载 2019-04-20 16:29:20 · 2779 阅读 · 0 评论 -
利用Shader Forge 做出树叶摆动的效果2DSprite__Unity
基于Shader Forge的2DSprite上制作,效果图如下: Shader Forge的版本为 v1.3.8.0,unity版本为2017.1.0f3.相关的shader和Demo稍后会分享资源,喜欢的同学去下载~Shader源码如下:// Shader created with Shader Forge v1.38 // Shader Forge (c) Nea...原创 2019-02-11 14:25:33 · 3900 阅读 · 1 评论 -
Unity调Android相关的API,只需一个文件即可搞定
方式与流程:利用Eclipse编译生成JAR,直接扔到工程的目录下即可使用,不需要配置AndroidManifest.xml等乱七八糟的东西。。。 Eclipse端版本: 新建android项目 工程创建好之后,在src文件夹下创建新包,名字随意在新建一个Class类 之后需要添加依赖库 ,Jar目录在unity的安装路径...原创 2019-02-16 10:27:37 · 1563 阅读 · 0 评论 -
ScrollRect滑动优化(四)_Unity—Item图片轮播效果
直接看效果好了,我只弄了两张图片。支持左右滑动。如果有更好实现的方式,麻烦请告知,网上看无限滑动的例子很多都是动态增减item,我这个是改变每个item的位置来实现无限滑动。此为Lua代码local ImageCarousel = class("ImageCarousel")function ImageCarousel:ctor()endfunction Imag...原创 2018-12-30 14:59:57 · 2894 阅读 · 2 评论 -
Unity__静态合批与动态合批
draw call是openGL的描绘次数(directX没怎么研究,但原理应该差不多)一个简单的openGL的绘图次序是:设置颜色→绘图方式→顶点座标→绘制→结束。每帧都会重复以上的步骤。这就是一次draw call如果有两个model,那么需要 设置颜色→绘图方式→顶点座标A→绘制→结束。设置颜色→绘图方式→顶点座标B→绘制→结束。两次draw calls;也就是说在openG...转载 2018-12-09 17:36:39 · 12209 阅读 · 1 评论 -
Unity3D -- 质量设置(Quality Settings)
Unity allows you to set the level of graphical quality it will attempt to render. Generally speaking, quality comes at the expense of framerate and so it may be best not to aim for the highest quality...转载 2018-11-14 19:09:39 · 3231 阅读 · 0 评论 -
Unity中的C#与C++交互
参考:Unity Manual-Low-level Native Plugin Interface源码demo演示了一个渲染三角形的例子C++部分代码实现了对底层API的封装以及核心功能实现。RenderingPlugin.cpp中定义了C++的接口。其中定义了一系列全局变量,用户通过接口函数对这些全局变量赋值。如:设定纹理// -------------------...转载 2017-10-24 16:14:53 · 2747 阅读 · 1 评论 -
Unity_获取自己和它的孩子有同样的组件
C# GetComponentsInChildren<组件>();这种方式是 大家经常用到的,这种是获取自己和它的孩子有同样的组件(比如 Rigidbody),返回一个数组,数组包括自己和它的孩子。如果他的孩子里面有的是不活跃SetActive(false);则获取不到。所以就会有第二个参数GetComponentsInChildren<组件>(true);...原创 2017-10-27 15:48:19 · 2195 阅读 · 0 评论 -
UGUI__修改组件节点位置
最近的工作任务是实现模态对话框,模态对话框弹出后要显示在最前面,为了实现这个效果,我从网上找到了解决办法:通过SetSiblingIndex 和 GetSiblingIndex设置与获取 gameObject在兄弟节点中的位置。 我觉得GetSiblingIndex返回就是兄弟节点对应的编号,这个编号从0开始,只要修改这个编号就可以改变这个节点在所有兄弟节点中的位置。...转载 2017-10-27 12:28:34 · 856 阅读 · 0 评论 -
U3D Invoke() IsInvoking CancelInvoke方法的调用
Invoke()方法是U3D的一种委托机制1、它应该在 脚本的生命周期(Start、Update、OnGUI、FixedUpdate、LateUpdate)中调用2、Invoke() 不能接受含有参数的方法3、在Time.ScaleTime=0时,Invoke()无效,因为它不会被调用到 用法 Invoke("方法名",int);//int秒后调用转载 2017-10-27 09:50:29 · 3280 阅读 · 0 评论