撰写了文章 发布于 2017-11-12 23:43:14
[Unity2D]全民打砖块开发实例(下)
上半部分请戳此链接:https://cowlevel.net/article/1926749
在完成了上半部分的逻辑和主体框架之后,这一步主要是一些游戏的后期补完以及一些注意事项,Let's Start it!
做一个自动测试脚本
每次测试砖块是否能够完成正确碰撞?总是担心自己实力太菜没法打赢自己创建的关卡?不用担心,只需要在Paddle脚本中添加如下代码即可
public bool autoPlay=false;
void AutoMove(){
Vector3 paddlePos=new Vector3(0.5f,this.transform.y,0f);
Vector2 ballPos=ball.transform.position;
paddlePos.x=Mathf.Clamp(ballPos.x,1f,15f);
this.transform.position=paddlePos;
}
为小球添加随机性
有些时候在某些小球的运动轨迹中,可能会产生直上直下或者较为单调的行为轨迹情况,我们在ball脚本中为每次碰撞添加一定的随机变量,使游戏性更好,具体代码如下
void OnCollisionEnter2D(Collision2D col){
Vector2 tweak=new Vector2(Random.Range(0f,0.2f),Random.Range(0f,0.2f));
if(hasStarted){
GetComponent<RigidBody2D>().velocity+=tweak;
}
}
添加ParticleSystem
如果需要更加具有视觉上的破坏效果,那么Particle系统就很有必要来引入
新建空物件,添加particle组件,并调节对应的Emission及Shape,并在Renderer选取合适的材质。新建完成后生成为Prefab,并使用Instantiate命令在每次砖块被摧毁后自动生成,具体代码如下
void PuffSmoke(){
GameObject puffSmoke=Instantiate(splash,transform.position,Quaternion.identity) as gameObject;
ParticleSystem.MainModule main=puffSmoke.GetComponent<ParticleSystem>().main;
main.startColor=gameObject.GetComponent<SpriteRenderer>().color;//对应生成砖块颜色的特效
}
剩余的部分就看各位自我发挥了。对应的项目原件已上传网盘,欢迎自己调取提出指正~
链接: https://pan.baidu.com/s/1pLdu9v1 密码: 7wq1
睡觉~明天上班加油!
目录