学习中不段进步!
游戏思路:通过键盘控制白色小球,让它“捡起”柠黄色方块,捡起一个加1分,全部捡起游戏胜利!
游戏对象:
Ground:绿色地面
player: 小球
Obstacle:围墙
PickUps:小方块
脚本
- 键盘控制小球移动
- 摄像机跟随小球移动
- 小球捡起方块(也就是消除方块)
- 得分以及胜利
- 小方块自己在不停的旋转
1、键盘控制小球移动
这个需要先给小球添加Rigidbody(刚体)组件,想要让小球移动就需要给小球施加一个力(下面红线是控制在这操作的代码)
private(私有化)一个叫做rd的Rigidbody; //private可百度
public force=5;
void Start(){ //初始化
rd=GetComponent<Rigidbody> //获取这个组件赋给rd
}
void Update(){ //每一帧都调用,一一般1S=60
float h=Input.GetAxis("Horizontal"); //Input.GetAxis("Horizontal");键盘控制运动,在X轴移动, float因为它返回的是-1—1的数
float v=Input.GetAxis("Vertical"); //Input.GetAxis("Vertical");键盘控制运动,在Z轴移动
rd.Addforce(new Vector3(h,0,v)*force); //在rd上施加一个力,力的方向是 newVector(h,0.v) 力的大小后面乘force,在最上面定义
}
2、摄像机跟随小球移动
摄像机跟随小球可以说是(摄像机相对于小球的位置不变) //这个脚本绑定在摄像机上
public Transform playertransform; //transform暂可理解为获取本脚本所对应的游戏对象的位置信息
Transform则可用来获取其他尤其对象位置信息来作用于本脚本
offset=transform.postiton-playertransform.position ; //向量差=相机的坐标-小球的坐标
transform.position=offset+playertransform.position; //再将向量差值加上现在小球所在位置的向量赋给摄像机
3、小球捡起方块(也就是消除方块)
- 碰撞检测(停顿一下,有碰撞感)
- 触发检测(没有碰撞感)
将所有方块的Tag设置为PickUp
void OnCollisionEnter(Collision collision){ //可查API,当碰撞时i
if(collision.collider.tag=="PickUp"){ //当标签为PickUp;
Destory(collision.collider.gameObject) //摧毁这个游戏对象
}
}
触发同理 可查OnTriggerEnter的API 需要勾选消除的 Is Tigger
4、小方块自己在不停的旋转
创建方块的实例perfabs
ttransform.Rotate(new Vectors(0,1,0)) //沿着轴旋转,在这里面一帧时间沿着Y轴旋转1°,并且在 Update函数下
5、得分以及胜利
创建两个UI.tex
t
在Player里创建2个public,一个 public text text //需要里面的text属性
一个 public GameObject Wintext 直接使用游戏对象
score++; 得分自加
text.text=score.Tostring(); //将整数型的score转化为字符串并赋值给text
if(score==10){ //当捡钱的方块为10个时
Wintext.SetActive(ture); //激活Wintext游戏对象,之前取消激活
|