- 博客(93)
- 收藏
- 关注
原创 Unity Canvas的三种模式
Screen Space - Overlay(屏幕空间 - 覆盖): 这是最简单的 Canvas 渲染模式。UI 元素在这个模式下将渲染在屏幕上的最顶层,不受场景中其他物体的影响。UI 元素的位置是相对于屏幕的,而不是相对于世界空间的。这意味着即使场景中有相机移动或旋转,UI 元素也会始终保持在屏幕的固定位置。这种模式适用于大多数 2D 游戏和简单的用户界面。Screen Space - Camera(屏幕空间 - 相机): 在这种模式下,UI 元素仍然是渲染在屏幕上的,但是相对于一个指定的摄像机。
2024-03-24 11:15:26
1750
原创 Unity编译报错Copying Assembly-CSharp.dll问题解决
突然想到自己电脑上安装了千牛客户端,然后试了下,卸载千牛后,果然没问题了,只能说有点坑呀。但是关闭各种杀毒软件,并且关闭windows安全中心的病毒和威胁防护,一开始去查资料发现可能是杀毒软件一直在后台读取文件的原因引起的。错,直接导致编辑器无法正常运行,必须重启才能正常运行。报错的情况依然存在,有时也可能会出现。于是看到网上网友说有个阿里旺旺软件。自带了一个流氓防护后台进程。
2023-11-25 14:56:25
379
原创 红黑树-自平衡二叉搜索树
红黑树(Red-Black Tree)是一种自平衡的二叉搜索树,它的节点可以是红色或黑色。这个颜色的设计是为了满足红黑树的五个关键性质,确保树保持平衡和高效地支持插入、删除和搜索操作。每个节点要么是红色,要么是黑色。根节点是黑色的。每个叶子节点(NIL节点,通常表示为黑色)是黑色的。如果一个节点是红色的,那么它的两个子节点都是黑色的。对于每个节点,从该节点到其后代任意叶子节点,经过的黑色节点的数量都相同。
2023-09-27 13:58:13
100
转载 Unity资源打包之Asset Bundle
原文链接:Asset Bundle的作用:1.AssetBundle是一个压缩包包含模型、贴图、预制体、声音、甚至整个场景,可以在游戏运行的时候被加载;2.AssetBundle自身保存着互相的依赖关系;3.压缩包可以使用LZMA和LZ4压缩算法,减少包大小,更快的进行网络传输;4.把一些可以下载内容放在AssetBundle里面,可以减少安装包的大小;什么是AssetBundle可以归为两点:1,它是一个存在于硬盘上的文件。可以称之为压缩包。这个压缩包可以认为是一个文件夹,里面包含了多个文
2021-11-19 15:04:29
1270
原创 NGUI 5 综合
1.UIDrawCall就是根据提供的数据(统一在UIPanel指派)进行渲染绘制。2.UIWidget拥有UIDrawcall mDrawCall和UIGeometry mGeo两个成员变量,其中UIGeometry就是对UIWidget的顶点vertices,uvs和color进行存储和更新。3.每一个UIWidget都有一个UIGeometry,UIGeometry完全由UIWidget维护,UIWidget的UpdateGeometry函数则是调用OnFill进行顶点信息的填充,每个继.
2021-10-20 00:12:32
93
原创 NGUI 4 (重点) UIPanel
UIPanel中的核心流程在LateUpdate方法中:void LateUpdate () //核心方法 更新所有Panel和DrawCall// 按顺序更新每一个Panel,list是一个静态的UIPanel列表,表明所有UIPanel公用只有一个。for (int i = 0, imax = list.Count; i < imax; ++i) list[i].UpdateSelf();//更新所有DrawCall for (int i = 0, imax = ...
2021-10-20 00:07:58
414
转载 关于Lua中的变量赋值
1.lua中表table的赋值实质为引用lua代码举例如下local TabA = {["a"] = 1,["b"] = 2}local TabB = TabA--将TabA赋值给TabBprint(TabA.a)print(TabB.a)TabB.a = 5--此处对表TabB进行操作print(TabA.a)print(TabB.a)print("~~~~~~~~~~~~~~~~~~~~~~~~~")local NumA = 1local NumB = NumANumB =
2021-09-03 09:44:42
1342
转载 Lua中的#
对字符串来说,#取字符串的长度,但对于table需要注意。lua的table可以用数字或字符串等作为key, #号得到的是用整数作为索引的最开始连续部分的大小, 如果t[1] == nil, 即使t[5], t[6], t[7]是存在的,#t仍然为零。对于这类tb[1],tb[2]....才能获取到正确的长度。local tab = {}tab[1] = 1tab[2] = 2tab[3] = nilprint(#tab)--结果为2local tab2 = {}tab2[1]
2021-09-03 09:28:46
3061
转载 Lua中,泛型for循环遍历table时,ipairs和pairs的区别
根据table型变量key是否为连续数字,如果是则称为数组型table,如果不是则称为非数组型table.事实胜于雄辩,接下来通过实验来区分两组迭代器的区别.首先给出pairs和ipairs在数组型table和非数组型table中的遍历效果: local testTable1 = {"a","b","c","d","e"} local testTable2 = {[1] = "a",["x"] = "b",["y"] = "c",[2] = "d",[8] = "e"}..
2021-09-03 09:26:04
552
转载 NGUI(3) UIWidget
本篇文章和大家介绍的是NGUI中的基础组件UIWidget,UIWidget是所有UI组件的基类,持有UI组件的大小、锚点、顶点、颜色,Alpha等所有跟渲染相关的属性。关键属性:protected Pivot mPivot //锚点protected Color mColor; //颜色protected int mWidth;//组件宽度protected int mDepth = 0;//显示深度,这个深度是相对于父节Panel的public UIGeometry geomet
2021-09-01 12:04:51
508
转载 NGUI(2) UIRect
UIRect源码分析UIRect是UIPanel和UIWidget的抽象基类,提供了一些共有的方法和共同的逻辑。其中最主要的逻辑是围绕Anchors更新位置,和提供了一些时序相关的抽象方法。AnchorPointUIRect首先内置了AnchorPoint这么一个内联类,并定义了四个AnchorPoint类型的变量,分别对应上下左右四个方向的锚点。其中有几个重要的字段:public Transform target; // 表示目标对象public float relative
2021-09-01 11:55:53
255
转载 c#List.Sort(比较的方法)返回值意义
一个值,指示要比较的对象的相对顺序。返回值的含义如下:越小的越排在前面。 值 含义 小于零 此实例按排序顺序在obj前面。 零 此实例与obj在排序顺序中出现的位置相同。 大于零 此实例按排序顺序在obj后面。 ...
2021-09-01 10:59:04
451
转载 NGUI 必读1 NGUI渲染基础机制
原文 NGUI三大基础机制:https://gameinstitute.qq.com/community/detail/109914本文介绍以NGUI的版本是3.6.0版本为基础基础介绍 NGUI的UIWidget, UIDrawCall,UIGeometry和UIPanel等基础脚本。ØUIWidget是UI的基础组件(UILabel,UISprite)的基类,含有组件的基本信息(width,Height,color锚点等)ØUIGeometry是UIWidget的几何数...
2021-09-01 10:52:38
291
转载 NGUI(1) UIDrawCall
之前看过一个博主说,研究代码一开始不能思路铺的太开,一开始应该从最核心的部分看起,然后一层一层的向外围展开,一次只看一个类或一个方法,别想看A的时候又想看B,遇到不懂的时候可以先放着,特别时遇到很复杂的调用关系的代码时千万不要深陷其中。从最核心的一小部分开始着手,比如看DrawCall 类的时候完全不管Widget和Panel,只关心这个类对外开放什么接口,需要什么数据等等。所以研究NGUI ,首先来看看UIDrawCall吧:下面是UIDrawCall的关键方法的介绍: 一.UpdateGe.
2021-08-31 16:06:37
201
原创 C++用类实现二叉排序树(也称二叉查找树,二叉搜索树)
关于用C++结构体实现的二叉树:https://blog.csdn.net/sindyra/article/details/103631960这里我们使用类来实现一个功能相对完整的二叉树,这个二叉树是根据值的大小构建的,从小到大分别是左节点,根节点,右节点的插入节点时,所以每次插入新节点时会从根节点开始,跟所有节点的值进行判断大小,最后插入到合适位置。二叉树节点类:#pragma on...
2021-08-31 11:49:45
884
1
原创 VS下Unity的内置的Editor宏定义失效,导致Unity卡死
VS下Unity的内置宏定义失效导致走入了非Editor宏定义的代码,出现Unity卡死的现象,鉴于出现过这种情况,做个记录。看下VS的这个选项是不是选成Release了,改成Debug就可以了
2021-04-22 11:22:43
1000
1
原创 关于SVN 的--depth=empty和--set-depth的配合使用:
关于SVN 的--depth=empty和--set-depth的配合使用:假设有这么一个场景,我们想要svn check一个地址为:svn co svn://127.0.0.1/XXX/server下的gameworld目录下的monster和item目录,但是server目录下的其他目录不需要,这时,我们可以进行以下操作:(1)check server 目录,但是只check一个空目录:svn co svn://127.0.0.1/XXX/server --depth=empty se..
2021-03-16 16:29:23
1862
原创 Skynet(4)-Sproto协议的RPC通信
此博客案例是为方便自己查看,给的代码不全可能无法一下看懂,如果不了解Sproto协议的,可以先看下这篇文章:https://blog.csdn.net/sindyra/article/details/108423417这里我们主要挑出客户端与服务端实际通信时RPC案例讲解下,本案例是一个登陆注册的案例。1.首先是客户端向服务端发送请求:local login_args = {name="Bob",password="123456"}local str = request("login",log
2020-10-08 22:00:49
819
原创 ToLua require “socket“ 报错
当我们使用LuaFramework的时候,有的时候,我们不想要使用框架自带的C#实现的Socket通信,想要直接用luasocket,这个时候,我们用一句简单的:local socket = require "socket"然后发现,报错了:这个是因为默认ToLua是不开启luasocket的,其实也有相关的代码,在 LuaClient.cs 中设置了这个的开启,但是我们有时候不需要使用这个脚本,这时,只需把LuaClient中的启用luasocket的代码移到 LuaManager.cs
2020-09-06 18:17:54
1025
原创 Skynet(3)-Sproto协议的使用
Skynet(3)-Sproto协议的使用 文章整理和来源:https://github.com/cloudwu/skynet/wiki/Sproto1.首先看下Sproto的协议的格式:.Person { name 0 : string id 1 : integer email 2 : string .PhoneNumber { num...
2020-09-05 20:00:28
2716
2
原创 Skynet(2)-Skynet服务的启动
Skynet的examples目录下的config文件设定了main.lua为第一个启动的服务,启动一个服务,会先调用这个服务的skynet.start()函数,examples中的main.lua:local skynet = require "skynet"local sprotoloader = require "sprotoloader"local max_client = 64skynet.start(function() skynet.error("Server start"
2020-09-01 23:34:46
598
原创 Centos6.8配置环境变量
yum命令安装的东西很多并非最新版,有的时候需要新版我们就需要手动wget下载安装,不懂wget可以先了解下,yum -y install wget 命令安装下wget就可以使用wget下载压缩包了。例如我使用以下命令安装git:中途可能会遇到一些问题(有点扯远了),如:这种都是需要安装一下相关依赖包就好了。手动安装完git后,可能会发现无法使用git --version查询命令,这个时候我们就需要配置环境变量:第一步:vi /etc/profile (注意如果你当前登录的用户如果不是r..
2020-08-26 13:37:10
474
原创 Skynet(1)-Skynet编译-Linux
(1)从github上下载skynet到本地: git clone https://github.com/cloudwu/skynet.git(2)切换目录:cd skynet/(3)开始编译:make linux此处有报错,是git的问题,网上有说设置Gitconfig --globalhttp.postBuffer 20M,试了下其实是不行的。问题在于当我们从git仓库clone或者push大量数据时(如1G),clone或者push时间会超过默认值为30s。 ...
2020-08-26 13:23:03
446
原创 云服务器CentOS6.8重置密码后SVN服务器连不上,Ftp服务连不上
(1).SVN:重启了云服务,改了登录密码后,svn连不上,位于home目录下:后来发现是需要重启svn服务:svnserve -d -r /home/svn(2).FTP:先检查下FTP服务是否开启,如果开启了还连不上, 直接重置密码:passwd root(这个是Ftp账号名)按照提示输入两次新密码即可。(3).如果以上方案无效,检查防火墙是否关闭:...
2020-08-26 13:07:27
241
原创 行为树(BehaviorDesigner)插件(2)--行为树节点
最简单的行为树是任务的集合,这些任务我们可以把它理解为行为树中的一个一个的节点。有四种不同类型的任务:Action(动作任务)、Conditional(条件任务)、Composite(复合任务)和 Decorator(装饰任务)。一、Action(动作任务):它们以某种方式改变了游戏的状态,比如主角的某个动作,可以作为主角行为树上一个动作任务。二、Conditional(条件任务):条件任务...
2020-03-20 16:48:49
1630
转载 行为树(BehaviorDesigner)插件(1)--认识行为树
游戏中的AI,大多数都是按照规则设定好的,没有太多花哨的技术。原因有几个:一是出于风险成本的考虑,用一个新技术,需要程序员开发相应的算法和框架,游戏设计师重新上手设计方法和摸索算法的适用范围,小团队承受不起这样的开销,大团队又怕做坏名声;二是“高级”的AI算法并不直观,难以设计。举一个例子,怎么利用神经网络来训练一个士兵AI?我见过的一个例子是设计师用几个按键来操作士兵移动攻击,然后程序自...
2020-03-20 16:07:03
684
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人