unity像素鸟
``# 将物体变为受重力影响的物理对象
- 给对象添加组件:2D刚体(Rigidbody2D)
物体会变成物理物体,有重力,会掉落
让物体能与其他物体互动
- 给物体添加碰撞器(Collider2D)
碰撞器有绿色的轮廓,使用offset可移动轮廓
脚本
本质是让我们自定义自己的组件
Start()
用于在启用此脚本后将立即运行一次。
Update()
启用脚本时,Update将持续运行,会不停运行每一行代码,每一帧,一遍又一遍。
操作对象
gameObject.name="对象名";
让脚本与对象其他组件属性交互
在脚本上做一个特殊的插槽(创建引用)
public Rigidbody2D 参考名;
public 公开 可从脚本外部访问此插槽
将组件拖入插槽
参考名.调用方法
按下空格键
Input.GetKeyDown(KeyCode.Space)==true
物体上升
myRigidbody.velocity=Vector2.up*10;
确保无论帧速率如何,乘法计算出相同的值
transform.position=transform.position+(Vector3.left*moveSpeed)*Time.deltaTime;
Time.deltaTime
创建预制游戏对象(Prefab)
从层次结构中获取父游戏对象并将其拖动到项目中
游戏对象蓝图 可通过预制体创建对象其他版本,包含所有子对象、组件和属性
脚本生成预制体
- 引用
public GameObject pipe;
- 拖放入插槽
- 内置生成对象
Instantiate(pipe,transform.position,transform.rotation);
生成和生成器的位置角度一样的新物体
计时器
public float spawnRate=2;
private float timer=0;
void Update(){
if(timer<spawnRate){
timer=timer+Time.deltaTime;
}else{
Instantiate(pipe,transform.position,transform.rotation);
timer=0;
}
}
位置指定自己的数字时,使用Vector3
销毁不需要的物品,以免占用内存
Destory(gameObject);
ui
- 创建text 调整大小
- 创建控制逻辑 logic manager
- 脚本
using UnityEngine.UI;
public Text scoreText;
- 将对象拖入插槽
- 测试
[ContextMenu("函数名")]
放在函数前
不可见的碰撞器 触发器(trigger)
不会造成真正的碰撞,但能让你知道两个对象已经接触
- 添加middle
- 添加box Collider2D
- 勾选istrigger
- 脚本
private void OnTriggerEnter2D(Collider2D collision){}
任何内容进入碰撞器的第一次都将运行
由于在预制体中 动画执行才会生成,无法拖入插槽,需要代码控制
先找到该触发器,创建新的标签
在start中
logic=GameObject.FindGameObjectWithTag("Logic").GetComponent<LogicScript>();
在层次结构中寻找第一个带有logic标签的游戏对象
https://www.youtube.com/watch?v=XtQMytORBmM&t=602s