我的订单|我的收藏|我的商城|帮助中心|返回首页
虚拟现实新闻>应用>技术动态>技术应用

开发太空射击游戏心得总结

文章来源:网站 作者:bonnie 发布时间:2013年10月15日 点击数: 字号:

[C#]

1
2
3 float amtToRotate = currentRotateSpeed * Time.deltaTime;
transform.Rotate(new Vector3(-1,0,0) * amtToRotate);
transform.Translate(Vector3.down * amtToMove, Space.World);

最近刚接触U3d,原来是从事java的,c#会点皮毛,第一个小作品是太空射击游戏。希望初学者看了能有所收获。

游戏类别:2D射击游戏
上手难度:容易
掌握知识点:
1、设置当前gameobject的位置代码:

[C#]

1 transform.position = new Vector3(-8.4f, transform.position.y, transform.position.z);

2、物体碰撞原理:
将被碰撞体也就是飞机设置为rigidbody,碰撞体也就是敌人,将isTrigger打勾。这样当两物体碰撞时,飞机就会触发OnTriggerEnter方法,碰撞后发生的事情,只需在这里添加即可。
3、碰撞时的细节:
飞机发生碰撞后爆炸,此时需要让飞机消失一段时间,等待飞机复活。这里需要用到MonoBehaviour.StartCoroutine,关于这个方法的使用方法,可参考官方官方文档。
4、Prefab:
预设,在游戏中应用的很广泛,当一个游戏对象需要重复利用时,就需要构建prefab。本游戏中子弹和爆炸效果都使用到了Prefab。
Instantiate方法说白了就是制造出这些复制体用的。
5、关于物体旋转:

在游戏中,陨石是以旋转的方式下落的。这需要在update方法中插入如下代码:

[C#]

1
2
3 float amtToRotate = currentRotateSpeed * Time.deltaTime;
transform.Rotate(new Vector3(-1,0,0) * amtToRotate);
transform.Translate(Vector3.down * amtToMove, Space.World);

需要注意的是:transform.Translate(Vector3.down * amtToMove, Space.World); space.world的意思是旋转时以世界的坐标系为参照。而不加这代码则以自己的xyz轴为参照物,这将导致陨石不会下落,而是做一个垂直方向的圆周运动。

>>相关产品

  • 立体显示器
  • 立体投影系统
  • 立体拍摄系统
  • 数字头盔/头戴式显示器
  • 立体视频眼镜
  • 液晶快门立体眼镜
  • 手持式立体双目镜
  • 数据手套
  • 3D输入设备
  • 多点触控系统
  • 立体投影系统
  • 动作捕捉系统
  • 位置追踪器
  • 眼动仪
  • 力反馈设备
  • 3D扫描器
  • 3D打印机
  • 虚拟现实软件
    • 暂无资料
    • 暂无资料
    • 暂无资料
    • 暂无资料
    • 暂无资料