


编程

◆ 编程常用的数据类型有:
(1)int:整型 用来存储整数
(2)float:浮点型 用来存储小数
(3)bool:布尔型 用来存储true或false
(4)string字符串型
◆ C#的数据类型:
(1)值类型
1 简单类型:常用int整型(即整数) float浮点型(即小数) bool布尔型(true flase) string字符串型
2 枚举类型:即举例类型 如:
Public enum PlayerState{
Idle,
Walk,
Dead
}
(2)引用类型
1 素组:即一个集合 如 Public int[] numList
2 类:在U3D里写的每一个脚本都是一个类 它不但包括数据也包括处理数据的方法(函数) 如:
using System; //引用函数的命名
class Person{ //类的定义 class为保留字 表示定义一个类 Person为类名(必须与C#文件名一致 首字母也应大写)
private string name="张三"; //类的数据成员声明 private表示私有数据 不可在类外面引用
public void Display(){ //类的方法(即函数)声明 public表示公用数据 可在类外面引用
Console.WriteLine("姓名:{0}",name.age);
}
}
◆ 只要类是继承至Mono 那么各API(即函数)的执行顺序都是:
Prefab Instantiate
/ \
Awake(启动时执行1次) OnEnable
|
Start(只执行1次)
/ \
Update((每帧执行1次) FixedUpdate
|
LateUpdate
|
Coroutine(协程)
|
Rendering(渲染)
|
Quitting(退出)
◆ 函数中常用的语句有:
(1)条件语句
if(id==1){
}
else if(id==2){
}
(2)循环语句
1 for循环:
for(int i=1;i<=10;i++){}
2 循环遍历:类似for循环
foreah(GameObject go in golist){}
3 while循环:
while(i<10){i++;}
◆ 碰撞检测函数:它要求两个物体都要有碰撞器(collider)并且至少必须有一个是刚体
碰撞发生时执行1次:
private void OnCollisionEnter(Collision collision){
print(collision.collider.name); //获取碰撞物体的名称
}
碰撞过程中一直执行:private void OnCollisionStay(Collision collision){}
碰撞结束时执行1次:private void OnCollisionExit(Collision collision){}
◆ 触发检测函数:
进入触发区域时执行1次:private void OnTriggerEnter(Collider other){}
在触发区域内部一直执行:private void OnTriggerStay(Collider other){}
退出触发区域时执行1次:private void OnTriggerExit(Collider other){}
◆ 控制摄像机跟随目标点进行移动:
public class FollowTarget : MonoBehaviour
{
pablic Transtorm hero; //定义一个目标点位置
private Vector3 offset; //定义一个偏移值
void Start()
{
offset = transform.position - hero.position;
}
void Update()
{
transform.position = offset + hero.position;
}
}