Unity 3D游戏六:打飞碟物理引擎

前言

中山大学数据科学与计算机学院3D游戏课程学习记录博客。
游戏代码: gitee
游戏视频: bilibili
参考师兄的博客: 师兄博客

游戏要求

  • 按 adapter模式设计图修改飞碟游戏。
  • 使它同时支持物理运动与运动学(变换)运动。

游戏分析

重用游戏五的代码,需要增加物理运动的相关代码,即PhysisDiskFlyAction.cs;
然后在FirstController.cs中根据情况选择调用物理运动和运动学运动两种运动方式,就可以实现adapter模式。

adapter模式:
将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

游戏实现

  • PhysisDiskFlyAction.cs的实现:
    PhysisDiskFlyAction.cs的实现模仿DiskFlyAction.cs,继承自SSAction;
    因为要使用物理引擎,所以通过FixedUpdate来实现位置更新;
    在Start()函数中给飞碟施加一个冲击力。
public class PhysisDiskFlyAction : SSAction
{
   
    private Vector3 start_vector;                              
    public float power;
    private PhysisDiskFlyAction() {
    }
    public static PhysisDiskFlyAction GetSSAction(int lor, float power) {
   
        PhysisDiskFlyAction action = CreateInstance<PhysisDiskFlyAction>();
        if (lor == -1) {
   
            action.start_vector = Vector3.left * power;
        }
        else {
   
            action.start_vector = Vector3.right * power;
        }
        action.power = power;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值