-
查看时间帧数:Edit->Project Settings->Time
timesale=0 可以表示物体静止,前提是物体的移动由time来控制 -
创建游戏物体的三种方法
//1、直接创建一个新的游戏物体
GameObject go = new GameObject("Cube");
//2、预制体
public GameObject prefab;
GameObject.Instantiate(prefab);
//3、创建基本的游戏物体
GameObject.CreatePrimitive(PrimitiveType.plane);
- tips
- 按住鼠标右键+QWEASD(镜头上下远近左右)
- edit>snap settings 设置步长
- 按住v顶点吸附
- ctrl+N 清除场景
- 加粗的属性表示不受prefab制约,预制体移除后游戏物体会变红,选择gameobject>break prefab instance恢复
- 不让地形场景一直加载windows>lighting>auto取消,生成光照贴图很消耗性能
1.invoke()调用放到队列里面不是立刻执行 start方法先执行
void Start () {
InvokeRepeating("attack", 4, 2);
CancelInvoke("attack");
}
void Update () {
bool res = IsInvoking("attack");
print(res);
}
void attack(){
print("攻击");
}
这段有个问题没解决:为什么不是invoke先调用attack输初“攻击"然后回到start()里被取消,再在update里输出false呢?
实际没有输出“攻击“直接就是false
2.edit->project setting->input(虚拟按键)
3、GetAxis得到轴的值的变化来控制移动,主要是模拟汽车启动的加速效果
4、Vector3是结构体不是类,所以属性是值不是引用,不能直接改变
transform.position.x = new Vector3(3,3,3);//对
transform.position.x = 10;//错
//更改值的方法
Vector3 pos =transform.position;
pos.x = 10;
transform.position = pos;
5、控制视线跟随一般z轴是正方向
Vector3 dir = target.position - enemy.position;
dir.y = 0; //方向不倾斜
Quaternion rotation = Quaternion.LookRotation(dir);
enemy.rotation = rotation;
6、rigidbody比transform移动物体性能更好(控制移动、转向、施加力)
7、用Camera组件获取鼠标点击位置的射线
Ray ray = mainCamara.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
bool isCollision = Physics.Raycast(ray,out hit);
if (isCollision)
{
Debug.Log(hit.collider);
}
8、通过接口实现对UGUI的操作
help->unity manual->scripting->event system->supported events
9、触摸检测插件Easytouch
10、控制角色移动charactorController里的move()和simplemove()方法的区别
move():不受刚体控制,是按照距离移动所以要在设定的速度后面乘deltatime
simplemove():会自由落体,直接乘速度
11、sharedmash直接赋值和mash会复制一份再赋值