10 2016 档案

摘要:LUA协程和C#协程非常相似,功能与用法更强大。基础用法: 一个典型的例子:生产者-消费者模式 阅读全文
posted @ 2016-10-27 16:06 时空观察者9号 阅读(222) 评论(0) 推荐(0) 编辑
摘要:弱引用的GC:LUA和C#一样,也分值类型:数值,BOOL; 引用类型:LUA表,线程,协程,function, userdata。 弱引用最好只用在引用类型上,若用在数值类型及非构造类型,如数值,字符串等则会出现手动GC不能起作用的现象。 弱表(weak table)是一个很有意思的东西,像C++ 阅读全文
posted @ 2016-10-27 12:52 时空观察者9号 阅读(415) 评论(0) 推荐(0) 编辑
摘要:代码重构就是在不改变软件系统外部行为的前提下,改善它的内部结构。 重构也就是在软件开发过程中,在需要的时候进行软件的结构与设计调整,包括代码整理。 与传统的先设计再写代码不同的是,重构是边开发边设计,设计与开发并进。 但并不是说重构就不需要做初始设计<一开始完全不进行设计而直接写代码>。 重构是在一 阅读全文
posted @ 2016-10-27 12:11 时空观察者9号 阅读(353) 评论(0) 推荐(0) 编辑
摘要:https://msdn.microsoft.com/zh-cn/library/k5532s8a(v=vs.110).aspx 阅读全文
posted @ 2016-10-26 10:33 时空观察者9号 阅读(100) 评论(0) 推荐(0) 编辑
摘要:1,prefab相当于一个类,字面意思就是预设,预先设计好的类。把一个prefab拖放到场景中就生成了一个实例,把二个prefab放到场景中就生成了两个实例。 不同的实例独立动作,拥有自己独立的状态与数据,不受其它实例的影响。 2,磁盘上有多个物体d1.fbx, d2.fbx, dn.fbx,将它们 阅读全文
posted @ 2016-10-25 11:52 时空观察者9号 阅读(503) 评论(0) 推荐(0) 编辑
摘要:http://www.jb51.net/article/54309.htm 阅读全文
posted @ 2016-10-24 23:00 时空观察者9号 阅读(203) 评论(0) 推荐(0) 编辑
摘要:许多语言中有闭包的概念,C#的闭包以lambda表达式表现,可以实现与LUA完全一样的效果。 可以看到,效果完全一样, 可见,闭包的原理在C#与LUA中是一样的,理解这两种语言的闭包概念的两篇文章: Lambda 表达式(C# 编程指南) Lua中的闭包小结 闭包是造成内存泄露的罪魁祸首,在大型游戏 阅读全文
posted @ 2016-10-24 17:24 时空观察者9号 阅读(383) 评论(0) 推荐(0) 编辑
摘要:在LUA中情况十分相似,在LUA中,字符串操作与C#完全一样,每次操作都会产生一个新串,大量字符串操作同样会产生大量内存占用。 在LUA中使用table.concat()来实现C#中stringbuilder()的功能,使字符串连接速度提升,内存减少。 经测试,在LUA中直接的字符串连接与使用tab 阅读全文
posted @ 2016-10-24 15:43 时空观察者9号 阅读(2437) 评论(0) 推荐(0) 编辑
摘要:using UnityEngine; using System.Collections; using UnityEditor; //此脚本不一定要放于editor目录下,经测试,放于其它地方也可以 public class testAB { //public static 类型的变量是不会出现在UI上的,因为出现在UI的脚本是实例化的脚本,是属于特定对象的 public ... 阅读全文
posted @ 2016-10-22 13:21 时空观察者9号 阅读(264) 评论(0) 推荐(0) 编辑
摘要:1 using UnityEngine; 2 using System.Collections; 3 public class testLoadFromAB : MonoBehaviour { 4 5 IEnumerator DownloadAndCache() 6 { 7 while (!Caching.ready) 8 ... 阅读全文
posted @ 2016-10-22 12:50 时空观察者9号 阅读(133) 评论(0) 推荐(0) 编辑
摘要:C:\Users\asus\AppData\LocalLow\Unity\Caches\GiCache 看名字似乎是全局光的缓存,可以通过Edit - Preference - GI Cache,选中 Custom Cache Location来改变缓存的存放位置。 新机安装U3D使用不到一个月,这 阅读全文
posted @ 2016-10-22 11:24 时空观察者9号 阅读(667) 评论(0) 推荐(0) 编辑
摘要:1 using UnityEngine; 2 using System.Collections; 3 using System.Text; 4 5 public class rotCube : MonoBehaviour { 6 7 //示例,如何为一个自定义对象实现GetEnumerator接口,从而可以对该对象使用foreach 8 //这... 阅读全文
posted @ 2016-10-21 20:09 时空观察者9号 阅读(658) 评论(0) 推荐(0) 编辑
摘要:using System.Collections; using UnityEditor; using UnityEngine; using UnityEngine.UI; /************************************************************************/ /* UnityEngine.WWW 下载与Update()的并行测试,U... 阅读全文
posted @ 2016-10-21 19:51 时空观察者9号 阅读(979) 评论(0) 推荐(0) 编辑
摘要:2016年12月2号:发现这个标题是错误的,可以在monodevelop中选择.NET的版本,如下:打开solution,右击 Assembly-CSharp,options, build, general, target framework: 下拉列表选择即可。最高版本可选.NET 4.51。 以 阅读全文
posted @ 2016-10-21 16:48 时空观察者9号 阅读(731) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2016-10-20 16:54 时空观察者9号 阅读(3) 评论(0) 推荐(0) 编辑
摘要:今天在测试有yield有关的问题时,发现Debug.log()是异步输出机制。不一定会在调用后立即执行。 在C++有类似问题:std::cout 也不一定会立即输出,加上"\n"或std::endl可以。而C语言的print则会立即输出。 点击运行,会发现,U3D编辑器卡了很长一段时间,然后控制台一 阅读全文
posted @ 2016-10-20 11:37 时空观察者9号 阅读(2132) 评论(0) 推荐(0) 编辑
摘要:yield(C# 参考) <!--?XML:NAMESPACE PREFIX = "[default] http://www.w3.org/1999/xhtml" NS = "http://www.w3.org/1999/xhtml" /-->在语句中使用 yield 关键字,表示在该关键字所在的方 阅读全文
posted @ 2016-10-18 20:50 时空观察者9号 阅读(290) 评论(0) 推荐(0) 编辑
摘要:情景:我们有一个mytest脚本,一个my_prefab预置体 想在在这个脚本的start()方法中复制多个my_prefab的实例。有3种方法: 1,将预置体my_prefab放于Resouce文件夹下,在start()中加载并实例化。 GameObject obj = Instaintiate( 阅读全文
posted @ 2016-10-17 21:16 时空观察者9号 阅读(575) 评论(0) 推荐(0) 编辑
摘要:事件系统有三个要素:发送者,接收者, 转发者。 发送者有两种,一是相机,二是画布。发送者是事件的管理者,发起者,它们使用射线发射器来检测点击事件: 相机的physics Raycaster。 画面的Canvas Raycaster。 发送者是首要因素,如果不给相机添加physics Raycaste 阅读全文
posted @ 2016-10-17 12:14 时空观察者9号 阅读(589) 评论(0) 推荐(1) 编辑
摘要:using System; namespace ConsoleApplication1d { delegate void MsgDel(string s); interface IMsg { event MsgDel msgd; void Excute(string s); } class MInfo : IMsg//必... 阅读全文
posted @ 2016-10-16 14:46 时空观察者9号 阅读(228) 评论(0) 推荐(0) 编辑
摘要:class Test { delegate K proxy(T t, K k); //泛型委托,注意返回值的写法,返回值的类型K先于其声明proxy中的K,这是C#底层的事 public static void Main() { proxy pxy = varCat; proxy pa... 阅读全文
posted @ 2016-10-16 14:02 时空观察者9号 阅读(303) 评论(0) 推荐(0) 编辑
摘要:class TClass { } class SubTClass : TClass { } class SubTClass1 : TClass { } class SubTClass2 : TClass { } 阅读全文
posted @ 2016-10-16 12:49 时空观察者9号 阅读(1260) 评论(0) 推荐(0) 编辑
摘要:using System;using System.Collections.Generic; using System.Linq; namespace ConsoleApplication1d { class CTX { public int id = 10; public string name = "rich"; public int ... 阅读全文
posted @ 2016-10-16 12:18 时空观察者9号 阅读(440) 评论(0) 推荐(0) 编辑
摘要:Body Transform The Body Transform is the mass center of the character. It is used in Mecanim’s retargeting engine and provides the most stable displac 阅读全文
posted @ 2016-10-13 12:15 时空观察者9号 阅读(184) 评论(0) 推荐(0) 编辑
摘要:,如下图一,把灰色箭头想象成是一架飞机,红,绿蓝三个圈看作是三个外围控制器,外圈带动所有里圈运动,里圈的运动不影响外圈。 1,首先,绕Y轴旋转(旋转绿圈),来确定前进的方向。这时红圈与蓝圈都跟着旋转。 2,然后,绕x轴旋转(旋转红圈),让飞机仰视或俯视。这时蓝圈跟着一起旋转,绿圈不动。 3,最后,绕 阅读全文
posted @ 2016-10-07 16:54 时空观察者9号 阅读(5207) 评论(0) 推荐(0) 编辑
摘要:1,没有合理的将公共的东西归入到基类中,而是分散到子类中,有许多重复。 比如 enbled的变量本应该是所有component所共有的一个属性,应该写在component。然而却发现并非这样,enbled被分散到了各种组件中,各自写了一遍。。。。。。。。醉了,不知这样设计是为啥,难道是所谓的【面向组 阅读全文
posted @ 2016-10-06 21:58 时空观察者9号 阅读(139) 评论(0) 推荐(0) 编辑
摘要:这是一篇晦涩难懂的片面的研究 一,简单的继承层次 在这种情形下调用Test(oc)有如下规律:<通过注释掉其它函数进行测试> 由此我们得知,Test(oc)调用时,编译器会由oc的继承层次由子到父的优先级去匹配重载函数的形参。这也符合正常逻辑。 二,类中有运算符重载的继承 此情形下boolTest重 阅读全文
posted @ 2016-10-06 18:34 时空观察者9号 阅读(621) 评论(0) 推荐(0) 编辑
摘要:1,Random,直接使用Random会报错,要么使用UnityEngine.Random,要么使用System.Random 阅读全文
posted @ 2016-10-04 22:33 时空观察者9号 阅读(279) 评论(0) 推荐(0) 编辑
摘要:编译时出现如下错误: 可以看到34行和36行都出现了编译错误,而35行则正确编译。原因分析: C#中,reference类型变量存储在堆上,value类型存储在栈上。pos, posx, position都是值类型,为什么会有不同的编译结果呢。区别在于 pos, position是属性,posx是字 阅读全文
posted @ 2016-10-04 21:12 时空观察者9号 阅读(6418) 评论(0) 推荐(2) 编辑
摘要:直接帖代码: 运行结果: 阅读全文
posted @ 2016-10-04 10:21 时空观察者9号 阅读(408) 评论(0) 推荐(0) 编辑
摘要:使用VS开发U3D项目时,去察看某个变量的声明,比如某组件的gameObject变量,会看到如下代码 一看似乎有点晕,这代码什么意思啊,就一个 public GameObject gameObject {get;} 这有点像属性的简洁声明: 但事实是这样的吗? 经过测试,并非如此 写一个小程序来验证 阅读全文
posted @ 2016-10-03 22:42 时空观察者9号 阅读(1225) 评论(0) 推荐(0) 编辑
摘要:1,安装Git。一路默认 2,安装TortoiseGit,一路安装完毕。重启电脑。 3,配置TortoiseGit。这是最重要一步。 配置 remote,即远程地址,用于以后pull 或 push操作。这里使用了github。配置如下: 配置 name 和 email。 name随便写,并不是用来登 阅读全文
posted @ 2016-10-03 18:36 时空观察者9号 阅读(3367) 评论(0) 推荐(0) 编辑
摘要:C#运算符重载函数必须是public static的 struct CSTest { public int posx; public static CSTest operator + (CSTest o1, CSTest o2) {//二元运算符重载 CSTest ost = new CSTest( 阅读全文
posted @ 2016-10-03 12:27 时空观察者9号 阅读(400) 评论(0) 推荐(0) 编辑
摘要:1,结构体不能出现在继承关系中,除了继承接口。 结构体不能继承类或结构,也不能被类或结构继承,只可以继承接口。 2,struct不能定义默认构造函数(无参构造函数),也不能定义析构函数。class对这两点都无限制。 3,如果struct提供了带参构造函数,则它的所有字段(变量)都必须在构造函数中初始 阅读全文
posted @ 2016-10-02 11:47 时空观察者9号 阅读(278) 评论(0) 推荐(0) 编辑
摘要:可空类型,语法: Nullable<int> inullx = 10; int? inully = 10; Nullable<int> inullx0 = null; int? inully0 = null; 作用: 如数据库中存在可为空的数据, 在C#中用一个值类型变量去接收该值会出错,因为C#中 阅读全文
posted @ 2016-10-02 10:18 时空观察者9号 阅读(901) 评论(0) 推荐(0) 编辑
摘要:1,JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。 而这个过程 阅读全文
posted @ 2016-10-01 18:59 时空观察者9号 阅读(207) 评论(0) 推荐(0) 编辑
摘要:1,引用类型 as2,值类型数值类转字符串:toString()字符串转数值类:float f = Convert.Parse("123.4") 及 float.Parse("123.4")及 float.TryParse("123.4")TryParse()不会抛出异常,转换不成功则维持out值不 阅读全文
posted @ 2016-10-01 18:49 时空观察者9号 阅读(147) 评论(0) 推荐(0) 编辑
摘要:if(obj is ClassA) //遍历类层次,看OBJ是不是ClassA类型{ ClassA a=(ClassA) obj; //遍历类层次,看obj能否转换为ClassA,不成功则抛出异常 ... }//作了两次类层次遍历 ClassA a = obj as ClassA //不成功返回nu 阅读全文
posted @ 2016-10-01 18:46 时空观察者9号 阅读(195) 评论(0) 推荐(0) 编辑
摘要:1,继承,若基类为带参构造函数,则子类也必须有带参构造函数。若基类有无参和有参构造函数,则基类可以不提供有参构造函数。 2,构造函数可以被重载(在本类中),可以被显示调用(在构造函数的构造列表中),不能被继承,不可以在其它任何地方调用。 class CTest { //重载 CTest(int x, 阅读全文
posted @ 2016-10-01 18:43 时空观察者9号 阅读(177) 评论(0) 推荐(0) 编辑
摘要:1,将源代码编译成托管代码。源代码如C#,VB,F#2,将托管代码合并成程序集。3,加载公共语言运行时。4,执行程序集的代码。 阅读全文
posted @ 2016-10-01 18:38 时空观察者9号 阅读(192) 评论(0) 推荐(0) 编辑
摘要:1,字符串遍历不同处:例: str = "汉字ABCabc"C#可以使用str[i]取得字符串中的汉字字符和拼音字符:Str[0] :汉Str[1]:字Str[2] : A依次类推。LUA中:Str[1] : nilStr[2]: nil…全为nil, 语法不支持这样的下标功能,只有string.b 阅读全文
posted @ 2016-10-01 18:32 时空观察者9号 阅读(1223) 评论(0) 推荐(0) 编辑
摘要:这种类型又称财务类型,起源于有效数字问题。FLOAT 单精度,有效数字7位。有效数字是整数部分和小数部分加起来一共多少位。当使用科学计数法的,FLOAT型会出现很严重的错误。比如 877323457832 元钱。写为科学计数法8.773234e11,还原回来 = 877323400000,损失了57 阅读全文
posted @ 2016-10-01 18:26 时空观察者9号 阅读(1503) 评论(0) 推荐(1) 编辑
摘要:C#中定义常量的方式有两种,一种叫做静态常量(Compile-time constant),另一种叫做动态常量(Runtime constant)。前者用“const”来定义,后者用“readonly”来定义。 对于静态常量(Compile-time constant),它的书写方式如下: publ 阅读全文
posted @ 2016-10-01 18:21 时空观察者9号 阅读(225) 评论(0) 推荐(0) 编辑
摘要:1,接口内的成员都是PUBLIC的,已默认,不能写明PUBLIC。2,接口不能有字段,可以有属性但不能实现。如: interface IShape { void func(); int Code { set; //不可以写成实现,也无法写实现,因为接口内不能有字段,故没法写成如set{ _code 阅读全文
posted @ 2016-10-01 18:17 时空观察者9号 阅读(193) 评论(0) 推荐(0) 编辑
摘要:1,主要作用:将读,写权限分开。如果不使用属性,仅使用public, protected, private,这几个限制都是读,写属性一起的,可读就可写,不可读同时也不可写。不能实现只读不可写,只写不可读的需求。2,更好的安全性:可以在SET中通过条件判断来限制非法值等。这虽然可以通过函数来实现,但不 阅读全文
posted @ 2016-10-01 18:14 时空观察者9号 阅读(4129) 评论(0) 推荐(0) 编辑
摘要:1.命名空间下的元素的默认访问修饰符 public : 同一程序集的其他任何代码或引用该程序集的其他程序集都可以访问该类型或成员。internal : 同一程序集中的任何代码都可以访问该类型或成员,但其他程序集不可以访问。 2.各类型中的成员的默认访问修饰符剩下的修饰符主要是正对继承这个语言特性的, 阅读全文
posted @ 2016-10-01 17:49 时空观察者9号 阅读(443) 评论(0) 推荐(0) 编辑
摘要:1,函数访问等级必须高于参数等级,如函数等级是PUBLIC,则参数必须高于等于PUBLIC,若为INTERNAL 则不行。INTERNAL 低于PUBLIC, 用于同一个程序集内引用,PUBLIC则可以被别一个程序集引用程序集:一个DLL或EXE就是一个程序集,一个EXE可以引用其它的DLL这就好比 阅读全文
posted @ 2016-10-01 17:45 时空观察者9号 阅读(217) 评论(0) 推荐(0) 编辑
摘要:二维数组由若干个一维数组组成。 在C++中,组成二维数组的一维数组长度必须相等。在C#中却可以不相等。 C#二维数组有两种: 1,普通二维数组: 2,数组的数组:又称锯齿数组,交错数组 测试代码: 附:参数数组 附:参数数组 有时,当声明一个方法时,您不能确定要传递给函数作为参数的参数数目。C# 参 阅读全文
posted @ 2016-10-01 17:29 时空观察者9号 阅读(242) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示