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 没变

posted @ 2016-11-18 16:57  梁志铭  阅读(124)  评论(0)    收藏  举报