草庐IT

unity矩阵

全部标签

unity-ScriptableObject的详细讲解

ScriptableObject是什么是Unity提供的一个数据配置存储的基类。可以用来保存大量数据的数据容器,是一个可以自定义数据的资源文件,一般用来当关卡配置,或者其他的配置一类的文件,一般用于只用不改的公共数据。可以发现,这个能做的和单例类也能做,单例类也是共享一份数据,有什么区别?首先,当我们在编辑模式下修改了继承自ScriptableObject对象的数据文件内容时,修改的数据将被保存到磁盘上。但是在发布运行后,即使在游戏中修改了ScriptableObject的数据,改后的数据并不会保存在本地,重新打开运行时数据并还是配置的初始数据。主要作用1、数据复用(多个对象用同一个数据,节省

【Unity】Socket网络通信(TCP) - 最基础的客户端通信流程

这篇文章主要内容是客户端与服务器通信的内容,服务端代码可以看我的这一篇文章【Unity】Socket网络通信(TCP)-最基础的C#服务端通信流程客户端与服务器的整个流程比较相似,客户端会更加简单一些:创建socket连接服务器收发消息释放socket,关闭连接创建Socket和服务端创建socket一样,直接new一个Socket对象就可以了,构造函数传入的参数分别是1.IP地址类型。AddressFamily.InterNetwork是IPv4类地址,AddressFamily.InterNetworkV6是IPv6类地址,这里用的是IPv4地址。2.socket类型。TCP协议对应的So

Unity中访问 URL

一、第一种:使用URL直接连接将此连接方法写在需要连接的时候即可,比如下面写在Button点击事件里;这种方式是跳出unity打开浏览器publicvoidConnectUrl(){Application.OpenURL("http://www.baidu.com");}二、第二种:使用www访问URLVS显示www已过时这种方式是跳出unity打开浏览器publicvoidConnectUrl(){WWWwww=newWWW("http://www.baidu.com");//外部HTML和本地HTML都可 Application.OpenURL(www.url);}三、第三种:使用Uni

xml - 如何在 XML 中保存和读取 OpenCV 中新的 C++ 样式矩阵对象?

可以将旧的C风格的cvMat矩阵传递给cvSave()函数,以便轻松写入XML文件。新的C++风格cv::Mat和cv::Mat_此函数不接受矩阵。OpenCV引用有一个关于XML持久性的部分,但是三个类(FileStorage、FileNode和FileNodeIterator)缺少任何描述或示例,我无法从界面中弄清楚如何使用它们。谢谢。编辑:这实际上涉及OpenCV的新C++界面中的许多其他功能,从2.1版。文档有些地方很差,函数参数不一致,用户组要么不知道,要么有比回答问题更好的事情要做。我打算暂时使用旧的C接口(interface)。文档好多了,更不用说O'Reilly的书了。

python矩阵的切片——获取子矩阵

矩阵切片矩阵为一个二维数列,所以矩阵的截取也需要包含行、列两个参数。行、列参数切片假设a是一个矩阵,a的截取就可写成:a[起始行(包含):终止行(不包含),起始列:终止列],中括号中有一个逗号,逗号前的是为了分割行的,逗号后的是为了分割列的。  注意:  起始位置是闭区间,即包含起始位置  终止位置是开区间,即不包含终止位置  也可以表示为:起始位置  例如:importnumpyasnp#创建一个numpy的数组a1=np.array([[1,2,3,4],[5,6,7,8],[11,12,13,14],[2,3,4,5]])#获得矩阵切片a1[1:3,1:3]print('截取矩阵第二三行

矩阵乘法和激活函数

矩阵乘法1.矩阵内积:矩阵内积又称为向量内积/点积/数量积,这是最常见的一种矩阵乘法.两个矩阵A、B的矩阵内积对应分量乘积之和,结果为一个数,即一个标量,记作。2.矩阵外积矩阵外积又称为或向量外积/叉积/向量积,即克罗内克积:克罗内克积是两个任意大小的矩阵间的运算,结果是一个矩阵如果A是一个m×n的矩阵,而B是一个p×q的矩阵,克罗内克积则是一个mp×nq的分块矩阵。克罗内克积符号为:⊗\otimes⊗3.哈达玛积(Hadamardproduct)哈达玛积的乘法符号为∘\circ∘激活函数1.Sigmoid2.Tanhtanh(x)=sinh(x)cosh(x)=ex−e−xex+e−xtan

求最大子矩阵和

这一题在leetcode或者acwing都是有原题的,是比较基础的dp了。解题思路:对于求最大子矩阵和,我们可以将二维数组进行降维处理,首先外循环枚举出子矩阵的最上面的边i,第二层循环在枚举出子矩阵的最下方的边j,第三层循环枚举出子矩阵的最右边的列k,将二维数组进行降维,变成求一维最大子序列和,然后假设先加上前面的子序列最大和,如果加上去之后子序列最大的和是小于0的,前面的子序列和不能选择,这个列大的子序列的值也不能选,所以将nums这一行的最大子序列置0,继续后面的最大子序列求解。 每次枚举起始行和终止行,然后按列求出所有行中该列的总和,然后降维处理,把题目变成求最大的一维子序列和。可以由图

Unity Shader: multi_compile一个文件变幻多个shader

multi_compile我们在写shader时,经常会出现同一个shader在面对不同的一些需求时,可能需要出现一些局部的变化,比如有些地方需要描边,有些地方不需要描边,由于在shader中不适合使用if,所以最好就是再写一份shader,但我们肯定不想复制一个shader改改,毕竟有很多共用的部分,万一修改了,岂不是两边都要改,而且shader多了也不方便使用。这个时候就需要用到shader变体了,只需要写一个shader,在编译的时候会自动生成多个对应shader使用,这样子就完美的解决了我们的问题。拥有多种变体的shader一般称为"megashaders"或者"ubershaders

Unity——使用铰链关节制作悬挂物体效果

目的在场景中创建一个悬挂的物体,是把多个模型悬挂在一起可以自由摇摆,类似链条的效果效果图前言什么是铰链关节?铰链关节将两个刚体(Rigidbody)组会在一起,从而将其约束为如同通过铰链连接一样进行移动。它十分适合门、链条、钟摆等模拟效果。步骤打开unity3d场景,在里面创建一个立方体Cube。接着给立方体Cube添加刚体Rigidbody组件接着给立方体Cube添加HingeJoint铰链关节组件。创建两个胶囊体Capsule,同样添加刚体Rigidbody以及HingeJoint铰链关节组件,通过旋转和移动工具把位置调整如下大致情况。把立方体Cube里面的连接锚点Anchor的y设置为1

Unity UI的transform,recttransform,position的相互转换

学习中遇到一些坑,记录一下,因为RectTransform坐标转换第一次遇到真的头疼1,首先要理解RectTransform是Transform的子类,而所有的UI组件,在代码中获取的transform.position实际上都是rectTransform.anchoredPosition,也就是说,新建一个空物体,加入Image、Text等组件后,这个物体只有在Canvas下,才能显示出来,它的Transform组件自动被替换为RectTransform。2,rectTransform.anchoredPosition是该UI物体的Pivot对应它的锚点的坐标,如果锚点为一个点,就比较好理解