【Unity 29】 Unity中的IEnumerator和animator简单使用

这篇笔记探讨了Unity中的IEnumerator协程及其在防止应用程序崩溃中的作用,以及Animator动画的使用,包括动画的通用性、动画管理器的设置和添加动画事件。通过示例展示了如何实现按键切换动画和角色移动功能,特别提到了使用CharacterController组件进行角色移动的方法,为创建简单的跑酷游戏提供了基础。
摘要由CSDN通过智能技术生成

PS:本系列笔记将会记录我此次在北京学习Unity开发的总体过程,方便后期写总结,笔记为日更。
笔记内容均为 自己理解,不保证每个都对

Part 1 IEnumerator 协程:

防止Unity因大量数据操作而导致,应用程序崩溃

协程的特点:
1、在主线程 里面运行的 任务片段 。
2、分段完成 不是一次性完成 。

常用方式为:使用带有 yield的指令函数

    IEnumerator change()
    {
        yield return null;
    }

使用Demo页面跳转:

public class ChangeScence : MonoBehaviour
{

    void  OnClick()
    {
        //阻塞式
        // SceneManager.LoadScene(1);

        StartCoroutine(Change());
        Debug.Log(" change Finish!!");

    }
    // Start is called before the first frame update
    void Start()
    {
        //  切换场景的时候 保留哪些东西不销毁
        DontDestroyOnLoad(transform.parent.gameObject);

        Button tmpBtn = gameObject.GetComponent<Button>();


        tmpBtn.onClick.AddListener(OnClick);
    }


    AsyncOpera
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IEnumeratorUnity的一个接口,用于在协程执行迭代器方法。协程是一种轻量级的线程,可以使程序在等待某些操作完成时继续执行其他操作。在Unity,协程通常用于处理一些需要时间的任务,例如等待某个动画播放完毕、等待网络请求响应等。 IEnumerator接口包含两个方法: 1. MoveNext():执行下一个迭代步骤,如果迭代器已经完成则返回false,否则返回true。 2. Reset():将迭代器重置到初始状态。 在编写协程时,通常需要使用yield关键字。yield关键字可以将当前协程挂起,等待某个操作完成后再继续执行。yield关键字后面可以跟一个IEnumerator类型的对象,表示等待另一个协程完成后再继续执行。 例如,以下代码展示了一个简单的协程: ``` IEnumerator MyCoroutine() { Debug.Log("Coroutine started"); yield return new WaitForSeconds(1); Debug.Log("One second later"); } ``` 这个协程会先输出“Coroutine started”,然后等待一秒钟后再输出“One second later”。 除了等待一定时间,yield关键字还可以用于等待一些其他操作,例如等待一个动画播放完毕: ``` IEnumerator MyCoroutine() { Debug.Log("Coroutine started"); Animator animator = GetComponent<Animator>(); animator.Play("MyAnimation"); yield return new WaitForSeconds(animator.GetCurrentAnimatorStateInfo(0).length); Debug.Log("Animation finished"); } ``` 这个协程会先播放名为“MyAnimation”的动画,然后等待动画播放完毕后输出“Animation finished”。 总之,IEnumerator接口是Unity协程的基础,可以方便地在协程执行迭代器方法,进而实现一些需要时间的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值