Unity3D学习笔记(7)—— 击球游戏

本文介绍了使用Unity3D和C#开发的一款击球游戏,游戏中运用了Legacy动画系统,并展示了如何控制角色Garen进行Idle、Run、Attack等动作。通过射线碰撞检测实现击球效果,并利用Delegate进行事件广播。游戏还包括裁判类Judge来验证功能,以及使用工厂类管理球体。最后,详细讲述了UI和场景初始化的实现。
摘要由CSDN通过智能技术生成

        在下Simba,有何贵干!新一期的游戏又出炉了(明明就是个Demo啊喂),这次的游戏比以往都简单(你别骗我),但是比以往的都好看(Excuse me?),没错,那就是动画!这一期的游戏使用了以往都没有使用过的动画系统,而且用了别人模型(不要脸)。

        Garen模型:http://pan.baidu.com/s/1i5exKNV

        使用前请将所有模型和动作设置成Legacy动画, inspector -> Rig -> Animation type -> Legacy -> Apply button。

        先来看看这酷炫的效果吧:(这...这莫非是...盖伦?)


        游戏的规则很简单,玩家控制盖伦击打完场上的7个球游戏结束,并给出最终用时。

        游戏的类图:


        (说好的很简单呢?我怎么看不懂)不急不急,看上去很复杂,其实只有3个脚本要写,话说这图可能还有错,刚学的UML作图。

         步骤说明:

一、场景布置

        场景布置总是游戏开始制作时必须考虑和完善的事情,在打代码前得脑补出游戏正常运行时的情景。我设计的游戏摄像机是不动的,玩家可以在固定区域内通过WASD移动,点击鼠标左键进行攻击。当区域内所有小球都被击打消失后,游戏结束,显示玩家用时。

        首先把玩家Garen拖入场景中,reset位置。新建4个正方体和1个平面,通过拉伸和位移组成一个方块区域:


        给玩家添加刚体组件和碰撞盒,碰撞盒采用胶囊体:




        新建1个UI Text对象,并将其定位在屏幕中央,用于显示玩家的最终用时:


        场景中的所有对象:


二、玩家动作

        OK,可以开始写代码了。想从最直观的写起,那么就先写玩家的控制吧。玩家有3个动作,分别是Idle、Run、Attack。Idle在Start时就播放,Run需要在Update中检测键盘输入,可以使用GetAxisRaw获得WASD的方向。Attack是比较复杂的动作,通过在动作过程中注册回调函数,可以使得在攻击动画播放过程中触发这些函数,比如AttackHit函数,以及StopAttack函数。前者判断有没有击中物体,并广播击中消息。后者使玩家播放站立动画(攻击动画结束后站立)。

using UnityEngine;
using System.Collections;

public class GarenMovement : MonoBehaviour {
    Animation ani;
    AnimationState idle;
    AnimationState run;
    A
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值