
游戏开发 & Unity
文章平均质量分 70
Unity下的游戏开发,Unity技术和C#语言
keneyr
一个兴趣广泛/想成为大佬 且 未遂的二道小贩子
展开
-
c# 自定义类数组实例化与初始化
自定义的Student类,代码如下:public class Student{ public int id;//学号 public string name;//姓名}实例化类数组和初始化数组里面的每一个类;只有初始化类数组里面的每一个类,才能给类的成员赋值。Student[] stu= new Student[100];//实例化类数组100个for (int i = 0; i < 100; i++){ //实例化数组里每个元素,方可给元转载 2021-03-10 16:13:56 · 2309 阅读 · 0 评论 -
录制动画时AnimationClip.SetCurve的relativePath问题及代码写一个AnimationClip
需要把某个GameObject及其子物体的动作录制成Animation动画,好吧,就是程序猿自己做动画,不用美工。大致代码类似如下; class testAnim { private Animation _animation = null; public GameObject Target = null; //目标对象 public GameObject[] Items = null; //目标对象子对象数组 p原创 2021-03-09 23:02:06 · 925 阅读 · 1 评论 -
c#中的值类型和引用类型
引言烦躁死了,我最近一直在疯狂踩坑c#的引用类型值类型,虽然在c++中也学过那个String类的深度拷贝和浅拷贝,涉及过这部分的知识点。但是这里我还是想针对c#的语言特性做个总结。为什么,因为老子肉眼定位不到自己的bug,但是知道肯定是因为这个特性没用好导致的。概念介绍引用类型:基类为Objcet值类型:均隐式派生自System.ValueTyp值类型:byte,short,int,long,float,double,decimal,char,bool 和 struct 统称为值类型。引原创 2021-03-06 20:27:44 · 1621 阅读 · 0 评论 -
Ps2D插件源码再分析
需求为什么要三番五次的折腾这个Ps2D插件,一遍又一遍的探幽源代码?这次本博的需求是什么?因为我有一个疑问,我发现在photop上的一个图层的像素位置和包围盒pixel position,到这个图层在Unity Scene场景中transform position我对不上,肉眼看不出规律,所以内部是怎么计算的? (不要在意细节,这个具体案例就不放了,角色太脆弱,已经被我玩的稀碎了)调试代码一,刚打开编辑器发生了这些:LayoutEditor.cs,从unity编辑器Window下打开这个工具就会原创 2021-03-04 23:25:20 · 524 阅读 · 1 评论 -
【Unity】对 Center/Pivot 和 Global/Local 的理解
Transform 组件决定游戏物体的 Position,Rotation 和 Scale。是 Unity 中非常重要的一个组件,每个 Scene 场景中的游戏物体都有 Transform 组件。在学习 Unity 的过程中经常被世界坐标、模型坐标、中心点的位置等概念搞晕,所以在这里做一个简单的总结。Center/Pivot 和 Global/Local在 Unity 面板的左上角有两个按钮,这两个按钮与 Scene 场景中游戏物体上显示的坐标原点和坐标轴指向等关系密切。Center/Pi转载 2021-03-04 23:18:44 · 3498 阅读 · 4 评论 -
C#中List<T>对象的深度拷贝问题
一、List<T>对象中的T是值类型的情况(int 类型等)对于值类型的List直接用以下方法就可以复制:List<T> oldList = new List<T>(); oldList.Add(..); List<T> newList = new List<T>(oldList); 二、List<T>对象中的T是引用类型的情况(例如自定义的实体类)1、对于引用类型的List无法用以上方法进行复制,只会复制List转载 2021-03-04 09:42:47 · 1822 阅读 · 1 评论 -
PhotoShop .psd文件格式读取分析(结合unity)
用了photoshop那么久,从来没仔细想过它到底用了哪些算法。想一想就觉得倒抽一口凉气。传闻photoshop的创始人,和wps创始人一样,就一个程序员写好了这第一版的成品。同样是做人,咋就差距这么大呢?千古疑问所以这个.psd文件的格式是什么,它和png、jpg、gif,甚至json文件的格式上有什么区别?.psd文件是怎么做到分层的,分层的存储方式又是啥?如何把.psd文件的单层图另外存储起来成为多个sprite?(没错就是Unity中的sprite)以及如何对其进行轮廓检测呢?(unit原创 2021-02-28 22:33:40 · 4944 阅读 · 0 评论 -
【C#】枚举和字符串以及数字之间的互相转换
转载于:https://www.cnblogs.com/wangyblzu/p/6543037.html准备条件:①枚举类型:public enum enumColor { Red = 1, Yellow, Green, Blue, White, Black }②以下状...转载 2019-12-31 11:00:23 · 877 阅读 · 0 评论 -
C#中的Var类型
传统定义变量是已经知道变量的类型,如: int a = 1; string b = “hello”;用Var类型预先不用知道变量的类型;根据你给变量赋值来判定变量属于什么类型;如var a =1; 则a是整型,var a = “hello”;则a是字符型,但使用Var类型要注意:1:必须在定义时初始化,即不能先定义后初始化,如:var a;a = 1;这样是不允许的2:一旦初始化完...原创 2019-08-02 20:56:47 · 10784 阅读 · 1 评论 -
c# 静态A类使用普通类B对象
class static A{public static string name;public static int age;public static Fun1(){}private static Fun2(){}}class B{public string OPString(){return name;}public int OPInt(){ret...原创 2019-07-31 14:51:23 · 554 阅读 · 0 评论 -
System.Timers.Timer定时器的使用
话不多说先来看一段代码://实例化Timer类,设置间隔时间为10000毫秒;System.Timers.Timer t = new System.Timers.Timer(10000); t.Elapsed += new System.Timers.ElapsedEventHandler(timeout); //到达时间的时候执行倒计时事件timeout; t.AutoRe...原创 2019-07-26 18:59:49 · 19799 阅读 · 1 评论 -
c#数组复制
当然不是简单的等于就可以咯。因为已经有博主写的比较详细了。我这里就负责做知识的搬运工了噜噜噜噜拉拉原文地址:https://www.cnblogs.com/makesense/p/4461016.html已知数组如下:int[] array = { 1, 5, 9, 3, 7, 2, 8 ,6, 4};(1).引用复制,易引起错误,不推荐int[] copy = array...转载 2019-03-20 19:57:17 · 3152 阅读 · 0 评论 -
ArgumentOutOfRangeException: Argument is out of range. Parameter name: index
总是碰到如标题的错误。。整了好久才知道错在哪里。原来我真的是数组超出范围了。。。。。我的天啊。。我还以为我不会再犯这种低级错误呢。。。。当然这里我还想记录一下与此同时解决的问题。类数组的声明和使用。要使用这样的格式private Point[] weights;weights = new Point[3];weights[0] = new Point(····);...原创 2019-03-09 23:40:07 · 10794 阅读 · 0 评论 -
c#之List深度复制
今天我用List<T>的时候,想要复制一个List到另外一个List。刚开始我以为c#已经高端到和python一样,直接等于就行了。当程序跑不动的时候,我发现果然c#还是骚不过python。所以c#的List<T>到底该怎么复制呢?参考博客:https://www.cnblogs.com/MRRAOBX/articles/6979479.html这个博客讲的很好...转载 2019-03-06 23:42:04 · 25113 阅读 · 4 评论 -
签名时加密失败,读取秘钥文件出错,系统找不到指定路径 解决方法
在c#项目运行的时候,遇到了这个问题:签名时加密失败,读取秘钥文件....snk出错,系统找不到指定路径意思就是这个别人的dll文件受到了用强名称保护起来了,你必需有秘钥才能使用。最快捷的方法就是去掉强名称签名。找到这个文件的项目的然后改动如下:把有snk的那行给注释了。然后修改csproj文件,把该改的给改了。重新导入项目引用文件就行了!...原创 2019-03-05 10:17:02 · 5136 阅读 · 0 评论 -
List和IList的区别
最近一直碰到这个。感觉有必要记下来它们的区别和主要用途。本文属转载,原文博客:http://www.cnblogs.com/wang7/archive/2012/05/16/2504634.html在我看一个源程序的时候看到这个例子使用了IList<T>返回类型,因为上午刚刚总结过List<T>的详细用法,突然出现了IList<T>,感觉很奇怪,于是上网...转载 2019-03-04 20:42:04 · 8004 阅读 · 2 评论 -
c#项目怎么引用其他项目的类
原来是这样。。。自己的文件里想引用另外一个项目里的类,那么首先应该在解决方案上,添加现有项目,把那个项目添加过来。然后在本项目上添加引用:...原创 2019-03-03 20:03:07 · 11860 阅读 · 1 评论 -
c#的partial
本文属转载,原文博客:https://www.cnblogs.com/leijiangtao/p/4203170.htmlPartial是局部类型的标志。局部类型可以实现将一个类、结构或接口分成几个部分,分别放在在几个不同的.cs文件中(当然也可以放在同一个.cs文件中)。在程序进行编译之后,将会合并成一个完整的类。因此局部类型并没有看起来那么难以理解,使用partial只是让类变得更容易管理...转载 2019-03-03 19:21:42 · 326 阅读 · 0 评论 -
NullReferenceException(未将对象引用到实例)
最近一直在写c#的时候一直遇到这个报错,看的我心烦。。。准备记下来以备后续只需。参考博客:https://segmentfault.com/a/1190000012609600一般情况下,遇到这种错误是因为程序代码正在试图访问一个null的引用类型的实体而抛出异常。可能的原因。。一、未实例化引用类型实体比如声明以后,却不实例化using System;using Sys...原创 2019-02-24 15:14:49 · 35955 阅读 · 1 评论 -
c#的委托
最近一直遇到c#的委托,刚开始看的云里雾里的,后来以c++的函数指针来类比就醍醐灌顶了。所以特此记载下来。因为最先接触的是c++,所以先来看c++的函数指针,再来讲c#的委托。一、c++的函数指针参考c++primer Plus 第6版函数有地址,函数的地址是存储其机器语言代码的内存的开始地址。函数地址:函数名。比如说Test()是一个函数,那么Test就是这个函数的地址。要将...原创 2019-02-15 20:29:22 · 5415 阅读 · 2 评论 -
初学C#-----笔记二
续接C#的笔记一,继续我的菜鸟笔记。一、可空类型Nullable 这是C++中所不具备的。可空类型可以表示其基础值类型正常范围内的值,再加上一个null值。例如: Nullable,读作”可空的 Int32”,可以被赋值为 -2,147,483,648 到 2,147,483,647 之间的任意值,也可以被赋值为 null 值。类似的,Nullable 变量可以被赋值为 true 或 fa原创 2017-10-18 16:05:47 · 318 阅读 · 0 评论 -
初学C#-----笔记一
c#初级笔记原创 2017-10-17 17:48:16 · 445 阅读 · 0 评论 -
Unity c# / c++
主要是想学习一下,Unity下的c++、c#混合编程。首先是跟着这位大佬的博客:准备工作1.新建一个C++空项目右键项目,打开属性一栏,设置好输出目录以及生成目标类型。(注意x86和x64的生成目录有差异添加名为DllInterface的.h头文件和.cpp文件2. 新建一个Unity空项目打开Unity创建一个空项目,添加一个Main.cs的MonoBehaviour脚本作为程序入口,再添加一个DllInterface.cs空类作为接口调用。代码编写1.原创 2020-12-15 02:32:41 · 4095 阅读 · 0 评论 -
深入理解Unity的prefab和序列化过程
遇到一个好帖子,所以记下来:https://connect.unity.com/p/unityeditorzhi-tong-guo-serializedobjectlei-shi-xian-pi-liang-xiu-gai-prefabzhong-zu-jian-can-shu其实说白了就是对“文件”进行处理。所以一定要掌握好文件处理的方法。今天我们分享一下,如何通过脚本批量修改Prefab中的组件参数~在使用Unity开发游戏中,Prefab一直是绕不开的一个话题。无论大游戏小游戏,都必然原创 2020-12-12 17:06:53 · 4536 阅读 · 0 评论 -
Unity插件ps2d解决psd文件导入unity的困扰
今天发现了一个宝藏unity插件,解决了我以往psd文件导入unity的困扰。因为以前单纯的用unity的sprite插件的话,2d动画没法对角色身体部位进行分层,需要在ps内分好层,然后打乱,再用Sprite Editor的slice功能切分,然后拖到场景中再排拓扑。就hin难受~这个插件可以很快的解决这个问题。非常自动化的导入psd文件然后一键生成gameobject。程序员太厉害了呜呜呜呜呜。。。https://blog.youkuaiyun.com/qq_33203851/article/detai原创 2020-12-04 15:30:58 · 3908 阅读 · 2 评论 -
unity在商店里下载的package保存位置
C:\Users\xxx\AppData\Roaming\Unity\Asset Store原创 2020-05-23 09:29:38 · 6177 阅读 · 0 评论 -
gitignore不起作用
.gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在push的目录中,原因是因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,这时候我们就应该先把本地缓存删除,然后再进行git的push,这样就不会出现忽略的文件了。git清除本地缓存命令如下:git r...转载 2020-01-10 00:57:05 · 619 阅读 · 0 评论 -
unity中的.meta文件
如果你在游戏开发过程中使用诸如SVN的版本控制工具,那你必须得理解Meta文件的作用。在游戏场景中引用一个游戏资源,Unity并不直接按照文件路径和名称,而是使用一个独一无二的GUID来指向工程里的该资源文件。这个GUID储存在Unity工程为每个资源和文件夹生成的Meta文件里。使用GUID的好处就是,即使你移动、重命名或者修改资源的内容,这个资源仍然可以通过GUID来被引用(只要GU...原创 2020-01-10 00:45:14 · 8986 阅读 · 0 评论 -
git上传unity文件过多改动
git add.然后git pushgit那边总是显示几万个文件更改,这个很麻烦。浏览了一下,发现大多是看起来没啥用的meta文件的改动。如何git只上传一些必要的文件呢?.gitignore文件里面做一个过滤就可以了:...原创 2020-01-09 12:41:08 · 601 阅读 · 0 评论 -
Unity应用发布如何在本地查看Debug输出?
转载于:https://blog.youkuaiyun.com/zfsr05255134/article/details/51867323在使用Unity引擎开发游戏的过程中,我们能将想要看到的内容通过Debug类来输出到Console窗口中,极大的方便了程序的调试过程。但是,我们将游戏发布成对应的平台应用程序后,这些输出还能不能看到呢?如可才能看到这些输出呢?这里我就介绍一种能够将Unity引擎的Deb...转载 2020-01-01 12:26:06 · 3892 阅读 · 0 评论 -
unity 双摄像机---其中一个摄像机看不到UI问题解决
设置相机为渲染模式为depth only设置canvas的渲染模式为world space,并且不要指定相机原创 2020-01-01 11:25:52 · 9158 阅读 · 1 评论 -
unity水波纹特效
https://jingyan.baidu.com/article/fec7a1e5be6fe21190b4e73e.htmlplus:因为我想让波纹的效果只播放一段时间,然后就停止,现在,把我的粒子的参数给贴上来:重点是start lifetime,可以控制粒子的生命周期。。。...原创 2019-12-31 23:20:42 · 3530 阅读 · 0 评论 -
Unity分屏
需求:让Unity开发游戏同时显示在扩展屏上,同时全屏模式的分辨率分别适配这两个显示器;如果是非全屏模式,主屏和扩展屏的分辨率都按照自定义的来。代码: if(LocalScreen.FULL_SCREEN) { //主屏和扩展屏都是全屏模式 Display.displays[0].Activate(); ...原创 2019-12-28 09:32:32 · 986 阅读 · 2 评论 -
Unity事件系统EventSystem--上
EventSystem有三个组件:EventSystem、StandaloneInputModule、TouchInputModule,后面两个组件都继承自BaseInputModule。EventSystem组件主要负责处理输入、射线投射以及发送事件。一个场景中只能有一个EventSystem组件,并且需要BaseInputModule类型组件的协助才能工作。EventSystem在一开...原创 2019-08-20 00:10:02 · 4775 阅读 · 0 评论 -
TouchScript模拟鼠标点击
上一篇博客可以看到Unity自带的EventSystem系统掌管了鼠标输入、触摸输入两大输入类型,并且可根据BaseRayCaster进行射线发射来判断鼠标点击在了哪个物体上,进而可以自定义点击事件响应方法(如下图)来完成一个workflow:但是现在有一个问题,我的输入类型不是鼠标也不是触摸,比如说我目前的输入就是一个已知的坐标。我该怎么模拟一次点击效果呢?有朋友可能会说,你要实...原创 2019-08-20 14:20:32 · 4768 阅读 · 4 评论 -
Unity事件系统EventSystem--中
Unity事件系统EventSystem--上解析了大概的概念,并给出了简单的例子。这篇博客来分析一下源码。EventSystem---处理点击、键盘输入以及触摸等事件StandaloneInputModule---基本的键盘和鼠标输入系统、并跟踪鼠标的位置、以及鼠标/键盘所按下的按键,是面向pc平台的输入模块。TouchInpuModule--基本的触摸输入系统,用于处理触摸、拖拽...原创 2019-08-20 14:34:58 · 4636 阅读 · 0 评论 -
How does Graphic Raycaster work
What is a raycast? What are blocking objects and blocking mask?Arayis a mathematical device that starts at an origin point and continues on in a specific direction forever. With araycastyou're ca...转载 2019-08-25 16:31:57 · 268 阅读 · 0 评论 -
OnMouseDown()和OnPointerDown()
其实这俩按理说应该是一样的,都是射线,但是神奇的是,OnMouseDown只需要在物体上加上Collider就能被触发,但是OnPointerDown()要加的东西就多了。如下图所示,我只有Cube和Light,然后MainCamera上啥都没有:难道OnMouseDown()默认在内部已经加上了射线了吗?感觉OnMouseDown()的相关源码被封装的比较紧密,内部实现无法窥探。很显...原创 2019-08-25 19:38:06 · 18280 阅读 · 0 评论 -
Unity RuntimeInitializeOnLoadMethod之前执行的方法
在Unity的RuntimeInitializeOnLoadMethod属性初探 一文中讲到了RuntimeInitializeOnLoadMethod的方法,再来总结一下:[RuntimeInitializeOnLoadMethod] 、[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]、[...原创 2019-08-22 10:42:18 · 3321 阅读 · 2 评论 -
TextMeshPro插件
Unity真是啥样式儿的插件都有啊。。TextMesh Pro是Unity中文字渲染的一个插件,如果你的Unity是2018版本以上,那么就可以找到这个插件:Window>Package Manager:注意红色框框圈出来的那段文字,翻译过来就是,TextMesh Pro是Unity的终极文字解决方案,它能完美的替代Unity的UI Text,也能完美的替代Text Mesh。...原创 2019-07-26 10:09:33 · 2312 阅读 · 1 评论