3d学习笔记(五)——打飞碟小游戏改进

作业与练习

1、改进飞碟(Hit UFO)游戏:

  • 游戏内容要求:
    1、按 adapter模式 设计图修改飞碟游戏
    使它同时支持物理运动与运动学(变换)运动
    2、打靶游戏(可选作业):

  • 游戏内容要求:
    靶对象为 5 环,按环计分;
    箭对象,射中后要插在靶上
    增强要求:射中后,箭对象产生颤抖效果,到下一次射击 或 1秒以后
    游戏仅一轮,无限 trials;
    增强要求:添加一个风向和强度标志,提高难度

实践内容

  • 根据要求,在上周的代码的基础上进行修改,上周的代码情况在上篇博客中可知

最新的游戏效果图

  • 飞碟出现
    这里写图片描述
  • 打中飞碟
    这里写图片描述

改进的地方

  • 增加了飞碟的重力属性
    这里写图片描述
  • 修改了飞碟的运动轨迹(从摄像头的后方往前抛出)
// 随机生成起始点和终点
        Vector3 starttPos = new Vector3(
              UnityEngine.Random.Range(-10,10),
              UnityEngine.Random.Range(0,20),
              -10
             );

        gameObj.transform.position = starttPos;

        Vector3 randomTarget = new Vector3(
              UnityEngine.Random.Range(-10, 10),
              UnityEngine.Random.Range(-10, 10),
              20
             );

        MoveToAction action = MoveToAction.getAction(randomTarget, gameObj.GetComponent<DiskData>().speed);
  • 增加了打中飞碟后的粒子效果
    这里写图片描述
    这里写图片描述
    这里写图片描述
    其实就是在预制当中加入了一个粒子控制器,再由以下代码调用,具体放置地方根据所需决定
GameObject explosion;
explosion = Instantiate(Resources.Load("Prefabs/ParticleSys"), new Vector3(-40, 0, 0), Quaternion.identity) as GameObject;
explosion.transform.position = hit.collider.gameObject.transform.position;
explosion.GetComponent<Renderer>().material = hit.collider.gameObject.GetComponent<Renderer>().material;
explosion.GetComponent<ParticleSystem>().Play();

以上即是本次作业的内容

猜你喜欢

转载自blog.csdn.net/qq_36312878/article/details/80072698