2016-11-18(2)(Unity相关)---脚本基础
利用deltaTme进行移动 position+= new vector3(Time.deltaTime * speed ,0.f,0.0f) ; 对象的移动速度按秒计。
-------------------------------------------数据类型(两大类)-------------------------------------------
值类型和引用类型
值类型 int float double char bool structs(复合变量类型)--Vector3,Quaternion(四元数)
引用类型 对象中的class--TransFrom,GameObject
区别:值类型里面装的是数值
引用类型里面装的是数值的地址
如果值类型发生了变化 只会影响那一个变量
如果引用类型发生了变化 那所有只想那块地址的引用都会发生变化
-------------------------------------------Class-------------------------------------------
类名和脚本名是一致的 当修改其中一个名字时候另一个也需要修改(遇到过这样的问题 赋值了一个脚本名字叫 Green 因为同时存在了两个Green 将其中一个改成了Red 但是没有改变类名 出错了)
脚本分离 一个脚本处理单一的功能
又说了说构造之类的 简单的东西
-------------------------------------------InsTantiate-------------------------------------------
InsTantiate 初始化函数 里面接受一个参数 就是我们要进行clone 的prefab
但是这样做 预制件会在默认的位置实例化 0,0,0
可以传入三个参数 第一个参数式预制体 第二个参数是位置position 第三个参数是旋转rotation
例: 在指定位置上面 生成火箭(火箭筒的枪口位置) 在火箭筒上面创建一个空 对象 然后把这个对象拽进脚本中 然后位置就固定了。
通过 RigiBody m_body; m_body = InsTantiate(,,) as RigiBody 将生成的实例当成一个 刚体。
然后可以给这个刚体添加 力之类的。
预制体 创建了 之后 要 添加副本及时删除。
-------------------------------------------数组-------------------------------------------
type[] m_arry; //声明一个type类型的数组
public GameObject[] objects; //一个public 类型的 游戏对象数组 可以在面板中 修改size大小以确定拖入多少个游戏对象。
GameObject.FindGameObjectWithTag(); // 通过tag 获取到所有的游戏对象 然后返回值 是游戏对象的数组 前提是要将游戏对象 弄个相同名字的tag
-------------------------------------------延时调用-------------------------------------------
InVoke()函数 可以让函数在指定的时间之后执行 对调用方法的时间限制 有要求的时候可以用
例: 在Start中调用InVoke()方法 里面有两个参数 一个参数是要调用的方法名称 另一个参数是延时多久以后调用此函数。
void Start(){
InVoke("MyFunc",2);
}
public void MyFunc(){
Instantiate(m_object,position,);
}
//就会延时 初始化 这个 游戏对象了
//只有不包含参数而且返回值的类型为Void才能 用Invote
InvoteReapting() //重复的调用 这个 延迟函数
cancelInvoke() 停止延迟调用 如果想确定停止 某一个延迟调用函数 那么在参数里面就要传入被调用函数的名称。
枚举 依然还是那个 枚举 用法 语法都差不多
//枚举放类外 类内
//枚举可以指定任意整形 例如 enum DIRECTION :short{,,,};
Switch 依然是那个Switch 没变

浙公网安备 33010602011771号