【Unity学习第二天】滚球游戏学习(Roll A Ball)

基本流程


**
0、在基础的地面上会有一个小球,通过控制小球的滚动,吞吃地面上的一些小块。
1、创建基础场景,包括地面,主角,触碰小块。

① 通过材质设置修改相关物体的颜色/光滑度等显示。
② 重复出现的游戏物体最好设置成prefab,以方便修改。
③ 小球上需要添加刚体组件,以模拟物理效果。
④ 触碰小块上添加PickUp标签,用于判断。

2、创建脚本,实现对游戏主角的控制,镜头对主角的跟随,主角触碰小块小块消失(吞食)的功能。

① 在脚本中定义一个刚体,并通过获取组件上的刚体对其赋值。
    private Rigidbody rd;
    //在start()模块中对其进行赋值。
    rd = getComponent<Rigidbody>();
② 通过对这个刚体施加力,对主角进行控制。
    float h = getAxisRaw("Horizontal");
    float v = getAxisRaw("Vertical");
    rd.AddForce(new Vector3(h,0,v));

③ 镜头的跟随,脚本挂在在相机上。首先定义一个gameObject,并将其和工程中的Player联系起来。
    public gameObject PlayerTransform;
④ 记录初始化时主角和相机的偏移量,在持续运行时加上偏移量。
    //在start()模块中
    offset = transform.position - PlayerTransform.position;
    //在Update()模块中,更新相机位置
    transform.position = PlayerTransform.position + offset;

⑤ 吞吃小球,有两种方式,一种是碰撞检测,但会有明显的触碰效果,第二种是触发检测,将触碰小快的碰撞盒修改成触发器(is Trigger)。
    //触碰检测
    void OnCollisionEnter(Collision collision){
        if(collision.collider.tag == "PickUp"){
            Destroy(collision.collider.gameObject);
        }
    }
    //触碰检测
    void OnTriggerEnter(Collider collider){
        if(collider.tag == "PickUp"){
            Destroy(collider.gameObject);
        }
    }

3、创建UI界面的显示内容,包括一个计数量score,一个完成时的提示量win。

4、在脚本中实现score的计数功能,和win的条件显示功能。

① 首先引入新的环境(?),using UnityEngine.UI;
② 得分计数的实现,因为是对游戏物体的text组件进行修改,所以定义一个text变量,用以和项目中对应的组件联系起来。
    public Text text;
    private int score;//计数变量

    score++;//在每次检测到加分条件时,score+1

    text.text = score;//完成赋值
③ 获胜提示,在满足条件的情况下,对winText进行一个激活操作。同样定义一个gameObject变量,和工程中的物体联系起来。
    public gameObject winText;

    winText.setActive();

5、游戏的发布(将需要构建的scene场景拖入到build的窗口中)

总结


**
1、善用unity提供的manual,当中包括很多class,需要一一熟悉。
2、脚本工程和游戏工程的联系需要定义,使用物体即用gameObject,使用组件即定义组件名称,获取组件通常使用gameObject.getComponent<>();

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值