【UNITY】
unity技术总结
DylanZQL
unity游戏引擎技术专家。
展开
-
unity android 8.0 无法启动问题
原创 2022-03-01 18:13:00 · 354 阅读 · 0 评论 -
Unity开发游戏时可以用到的一些插件介绍
本文介绍一下使用Unity开发游戏时,可以用到的一些插件,辅助游戏的开发效率!1:Ultimate Mobile Pro包含Unity与iOS和安卓原生api交互的插件,同时包含Admob插件,随意切换iOS和安卓部署,不需要更改任何代码。下面三个插件为Ultimate Mobile Pro的子集。A)iOS Native Pro (Ultimate Mobile Pro的子集,包含和iOS交互的插件 )B)Android Native Pro (Ultimate Mobile Pro的子原创 2021-11-23 09:31:49 · 1229 阅读 · 0 评论 -
xlua复杂值类型的gc问题
前言Unity下的C#GC Alloc(下面简称gc)是个大问题,而嵌入一个动态类型的Lua后,它们之间的交互很容易就产生gc,各种Lua方案也把这作为性能优化的重点。这些优化说穿了其实不复杂。元凶在这里先看看这两个函数int inc1( int i){ return i + 1;} object inc2( object o){ return ( int )o + 1;}window下实测inc1的性能是inc2的20倍!差距为什么那么大?主要原因原创 2020-12-30 10:29:09 · 950 阅读 · 1 评论 -
xlua基础知识
1.1 xLua简介xLua是由腾讯维护的一个开源项目,xLua为Unity、 .Net、 Mono等C#环境增加Lua脚本编程的能力,借助xLua,这些Lua代码可以方便的和C#相互调用。自2016年初推广以来,已经应用于十多款腾讯自研游戏,因其良好性能、易用性、扩展性而广受好评。现在,腾讯已经将xLua开源到GitHub。其git地址是:https://github.com/Tencent/xLua。xLua在功能、性能、易用性都有不少突破,这几方面分别最具代表性的是:可以运行时把C#实现(原创 2020-12-28 14:39:49 · 3629 阅读 · 1 评论 -
xlua热更新
热更新简介热更新是指在不需要重新编译打包游戏的情况下,在线更新游戏中的一些非核心代码和资源,比如活动运营和打补丁。热更新分为资源热更新和代码热更新两种,代码热更新实际上也是把代码当成资源的一种热更新,但通常所说的热更新一般是指代码热更新。资源热更新主要通过AssetBundle来实现,在Unity编辑器内为游戏中所用到的资源指定AB包的名称和后缀,然后进行打包并上传服务器,待游戏运行时动态加载服务器上的AB资源包。代码热更新主要包括Lua热更新、ILRuntime热更新和C#直接反射热更新等。由于ILR原创 2020-12-27 14:36:19 · 459 阅读 · 0 评论 -
xlua源码分析
xlua调用c#代码在xlua中可以直接调用c#代码,例如:CS.UnityEngine.Debug.Log('hello world')CS是一个全局的Table,所以CS.UnityEngine可以当做是在一个名为CS的Table表中查询名为UnityEngine的值。获取其值是通过CS的元方法__index来实现的。其逻辑代码在创建LuaEnv时候调用下面的代码,进行CS表的初始化DoString(init_xlua, "Init");下面代码是截取了部分的init_xlu.原创 2020-12-26 16:17:30 · 622 阅读 · 0 评论 -
C#与Lua交互过程及原理
未完。。。原创 2020-12-25 17:51:17 · 1442 阅读 · 0 评论 -
unity中常用函数
判断物体是否在相机视野中 /// <summary> /// 判断物体是否在相机视野 /// </summary> /// <param name="worldPos"></param> /// <returns></returns> public static bool IsInView(Vector3 worldPos, Camera原创 2020-12-24 14:41:35 · 606 阅读 · 0 评论 -
为什么引入齐次坐标的变换矩阵可以表示平移呢?
1. 为什么引入齐次坐标可以表示平移?首先我们用一个矢量来表示空间中一个点:如果我们要将其平移,平移的矢量为:那么正常的做法就是:如果不引入齐次坐标,单纯采用3X3矩阵乘法来实现平移你想做的就是找到一个矩阵,使得然后你就会发现你永远也找不到这样的矩阵所以我们需要新引入一个维度,原来那么我们可以找到一个4X4的矩阵来实现平移现在,就有:2. 为什么要引入齐次坐标来表示平移?在计算机图形学中,坐标转换通常不是单一的,一个几何体在每一帧可能都设计了多个平移,旋转,缩放等变化,这原创 2020-12-24 11:28:23 · 565 阅读 · 0 评论 -
点积与叉积
点积点积是两个向量点乘获得一个常量,属于降维。叉积叉积是两个向量叉乘,获得垂直于该两个向量的法线向量。在物理学光学和计算机图形学中,叉积被用于求物体光照相关问题。求解光照的核心在于求出物体表面法线,而叉积运算保证了只要已知物体表面的两个非平行矢量(或者不在同一直线的三个点),就可依靠叉积求得法线。模长:(在这里θ表示两向量之间的夹角(共起点的前提下)(0°≤θ≤180°),它位于这两个矢量所定义的平面上。)...原创 2020-12-24 15:46:52 · 1450 阅读 · 0 评论 -
unity日志地址
Editor 编辑器日志编辑器日志,可以通过Unity的控制台窗口中Open Editor Log 按钮打开。Mac OS X ~/Library/Logs/Unity/Editor.log Windows XP * C:\Documents and Settings\username\Local Settings\Application Data\Unity\Editor\Editor.log Windows Vista/7 * C:\Users\username\A原创 2020-10-26 10:09:00 · 544 阅读 · 1 评论 -
unity 隐藏iPhone X底部横条?
如果没有上面的选项,可以通过修改导出Xcode工程中的这里(如果没有这段代码,加上去就行了)原创 2020-10-22 15:56:36 · 1317 阅读 · 0 评论 -
macos打开任何安装来源
sudo spctl --master-disable原创 2020-10-16 14:27:53 · 117 阅读 · 0 评论 -
unity打进包中的资源
asset目录下的资源editor文件夹中的资源不会进包resource streamassets文件夹中的资源会原封不动进包plugins文件夹下回按平台进包别的文件夹 c#文件全部编译进包 别游戏引用到的资源进包原创 2020-08-29 11:07:39 · 596 阅读 · 0 评论 -
lua gc
以 Lua 为例,运行时的对象,要么存在于注册表间接引用的 table 中,要么存在于执行栈上(严格说来,注册表引用了主线程,执行栈在线程结构内)。当一个对象被一个 table 引用时,对于步进式垃圾收集,它需要一个 Barrier 来维持对象的可见性状态,这和递增引用计数的成本一致;不过对象从 table 中移除则不需要额外做递减引用计数的操作;我们可以认为在这个问题上,引用计数带来的成本仅仅是垃圾收集的两倍。但性能问题出在对象在执行栈上的操作。不光是函数调用和返回会在栈帧间传递对象的引用,任何一段代码都原创 2020-08-26 19:03:51 · 414 阅读 · 0 评论 -
unity vscode
https://stackoverflow.com/questions/52296678/using-net-4-x-in-unity-on-a-machttps://forum.unity.com/threads/after-upgrade-omnisharp-fails-to-load-the-assembly-csharp-csproj-from-a-unity-project.597670//Users/admin/.vscode/extensions/ms-dotnettools.csha原创 2020-08-26 19:03:19 · 172 阅读 · 0 评论 -
unity资源管理
1.resource load资源可以异步和或者实时加载进内存,instantiate实例化为gameobject,使用resource.unload释放资源,此时如果有别的gameobject占用改资源,释放会导致该gameobject运行出错。resource.load不会重复加载资源,但是多次使用load会消耗额外效率,所以需要实现自定义资源加载管理方式。2.assetbundle load资源可以异步或者实时加载进内存,会同时加载所有依赖资源。unload(true)强行释放改ab资源,使用该a原创 2020-07-23 21:55:51 · 345 阅读 · 0 评论 -
unity打包脚本
require("utils") -- platform android ios -- switch public or dev -- cfg dev tencent_testAPP = '/Users/admin/2018.4.20f1/Unity.app/Contents/MacOS/Unity'PROJECT_DEV = '/Volumes/DISK/code/client2/wly2-publish/-Trunk/wly2_dev'PROJECT_PUBLISH = '/Volu..原创 2020-07-06 21:01:59 · 419 阅读 · 0 评论 -
jenkins cocos2dx
Project excel转lua(构建后更新dataset_debug,用于本地测试)cd /Volumes/DISK/code/client/wly2_lua_svn/StaticDatasvn uprm -rf lua/dataset_debugsh ./convert.shcd lua/dataset_debugsvn add --force ./*svn commit -m 'excel转lua update resource'Project pc端测试包cd /V原创 2020-07-06 20:53:25 · 192 阅读 · 0 评论 -
mac禁止每次弹出是否接入网络
sudo codesign -f -s - --deep XXX把XXX换成软件的路径,可以直接从app目录拖进来,回车,再打开第一,点允许,再打开就不需要点允许。原创 2020-07-06 17:16:03 · 647 阅读 · 1 评论 -
unity原生开发
1.修改ios启动入口unity发布xcode工程中,默认启动入口类是UnityAppController,有的时候需要加入原生代码,又不能影响unity的发布过程,则需要在Assets/Plugins/iOS中加入CustomAppController.mm,此类继承UnityAppController,IMPL_APP_CONTROLLER_SUBCLASS宏会在工程运行后覆盖main.mm中的AppControllerClassName为自定义类。2.unity中添加xcode entitle原创 2020-07-02 20:26:14 · 334 阅读 · 0 评论