摘要: /// ///生成不重复的随机数 /// /// 随机数的个数 /// 随机数的下限 /// 随机数的上限 /// public int[] GetRandomArray(int Number, int minNum, int maxNum) { int j; int[] b = new int[Number]; for (j = 0; j < Number; j++) { int i = Random.Range(minNum, maxNum + 1); ... 阅读全文
posted @ 2013-10-15 10:53 Vital 阅读(329) 评论(0) 推荐(0)
摘要: //Array ar = new Array(); //错误,无法创建抽象类或接口“System.Array”的实例 //int[] array = new Array[3];错误, //int[] array = new Array[];错误,必须指定数组的大小或初始值 //int[] array = new Array[3];//错误,无法转换为int[] //int[] array=new int[];//错误,必须指定数组的大小或初始值 //平常我们int[],string[]...事实上就是声明一个array数组了 阅读全文
posted @ 2013-10-14 16:17 Vital 阅读(614) 评论(0) 推荐(0)
摘要: /* * 对于初始化对象,每New一次实例化一次对象都要执行一次构造函数,如果构造函数执行时间够长,那么执行多个对象初始化的效率就太低了。 * 一般在初始化的信息不发生变化的情况下,Clone是最好的办法。 * 因为这样既隐藏了创建的细节,又对性能大大的提高。 * 它相当于不用重新初始化对象,而是动态的获得对象运行时的状态。 */using UnityEngine;using System.Collections;using System;using System.Collections.Generic;public class ClonePrototy... 阅读全文
posted @ 2013-10-14 10:39 Vital 阅读(1156) 评论(0) 推荐(0)
摘要: /* * * 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主体对象。 * 这个主体对象在状态发生变化时,会通知所有的观察者对象。使他们能够自动更新自己。 * * */using UnityEngine;using System.Collections;using System;using System.Collections.Generic;public class ObserverModel : MonoBehaviour { private ConcreteSubject s; // Use th... 阅读全文
posted @ 2013-10-12 15:12 Vital 阅读(241) 评论(0) 推荐(0)
摘要: bool IsAnimationPlaying(GameObject objWithAnimation,string animationName) { return objWithAnimation.animation.IsPlaying(animationName)&&objWithAnimation.animation[animationName].normalizedTime<1.0f; }判断某个动画是否播放完毕。 IEnumerator WaitForAnimationPlayOver(GameObject objWithAnimation,... 阅读全文
posted @ 2013-10-11 15:06 Vital 阅读(10557) 评论(0) 推荐(0)
摘要: /*** * 建造者模式(Builder) * 将一个复杂的对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。 * 使用建造者模式,客户端只需要指定建造的类型就可以得到他们,而建造的过程和细节 * 就不需要知道了。 * 注: * 个人理解,Builder模式就是在类和对象之间,再创建一个中间类(即Director),这个中间类负责控制每个对象具体执行的方法。 * 而在客户端只需要指定让谁去创建(Doing),就可以了,至于创建的方法它完全不需要知道。 */ using Un... 阅读全文
posted @ 2013-10-11 10:06 Vital 阅读(268) 评论(0) 推荐(0)
摘要: 首先新建一个场景,场景中有两台相机。其中camera负责渲染三维物体,Main Camera负责渲染GUI。因为camera只是负责渲染,所以移除camera上的其它组件,只保留Camera组件。场景中的三维物体cube,给它添加一个自己的Layer,并且设置为该Layer。OK!现在开始设置camera,要让camera只渲染cube这一个物体。所以需要设置Camera上的Culling Mask,将它设置为我们刚才为cube添加的层,这样相机camera就只渲染我们设定的这一层。然后将Main Camera的Culling Mask设置为Nothing,因为它只需要做为GUI的显示,不需要 阅读全文
posted @ 2013-10-10 16:03 Vital 阅读(2915) 评论(0) 推荐(0)
摘要: 有的时候我们希望相机可以慢慢的转动去看向一个目标物体,官方的API里有个方法是LookAt,但是LookAt是直接看过去,少了一个旋转的过程。 void CameraRotateToLookAt(Transform target,float rotateSpeed) { //取得目标物体相对于相机的法向量 Vector3 normalize = Vector3.Cross(myCamera.transform.forward,target.transform.position-myCamera.transform.position); fl... 阅读全文
posted @ 2013-09-24 16:02 Vital 阅读(8056) 评论(1) 推荐(1)
摘要: 单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。 一个类应该仅有一个职责,而一个函数应该只实现一个功能,这样就会保证代码的清晰,也会减少代码间的耦合。 一个类如果承担的职责过多,就等于把许多职责耦合起来,一个职责的变化可能会抑制或削弱该类完成其它职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭到意想不到的破坏。开放封闭原则:这个原则有两个特征,“对于扩展时尽量放的,对于修改时尽量封闭的”。 在我们最初编写代码是,假设变化不会发生。但实际情况是变化常常发生,当变化发生时,我们就创建抽象来隔离 以后发生同类变化。 绝对的封闭是不可能的,无论模块多么的封闭,都会存在一些... 阅读全文
posted @ 2013-09-23 17:06 Vital 阅读(209) 评论(0) 推荐(1)
摘要: using UnityEngine;using System.Collections;using System.Collections.Generic;public class RollTxt : MonoBehaviour { //支持中文 private string txt = "1234567werweerty74874651rtyrghdfgdgdfg891234wrew56789"; public string showTxt; public int showLength = 8; public int txtLength; public flo... 阅读全文
posted @ 2013-09-23 11:32 Vital 阅读(3859) 评论(0) 推荐(1)