Unity教程2D入门:23 优化代码Fix code

https://www.bilibili.com/video/BV1PJ411w7KT?p=2

part1:将所有与idle相关的语句都可以注释掉,因为默认执行的

animator的条件和transition内的idle都可以删除

part2:

将Jump从Movement独立出来成为一个函数,每次按跳跃前需要重置Y轴速度

                                                                              rb.velocity=new vector2(rb.velocity.x, 0);

然后Jump和Crouch放到void Update();中,Movement在void FixedUpdate();中

part3:

这里用于:Enemy被JumpOn时隐藏collider,以免二次碰撞

当组件只被调用一次可以不进行实例的生成,用一下语句:

GetComponent<collider2D>().enabled = true;

part4:

给cherry添加一个isColl的动画,用于被收集时显示

然后定义一个函数isColl用于记录樱桃数量的增加,放在isColl动画播放后的Event

在播放动画后再计数可以有效解决一个樱桃多次计数的问题

 这里扩展一个不用class调用其他脚本函数的方法

在PlayerController新建一个CherryCount()函数

public void CherryCount()
    {
        Cherry+=1;
    }

写一个Cherry脚本,里面记录樱桃被吃后Death的事件

public class Cherry : MonoBehaviour
{
    public void Death()
    {
        FindObjectOfType<PlayerController>().CherryCount();
            //在系统中找到playerController这个脚本,然后调用脚本内的函数CherryCount()
        Destroy(gameObject);            
    }

FindObjectOfType<PlayerController>().CherryCount();但是貌似低效有延迟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值