• Unity脚本的基础语法(8)-协同程序与销毁方法


    协同程序

      协同程序,即在主程序运行的同时开启另一段逻辑处理来协同当前程序的执行。但它与多线程程序不同,所有的协同程序都是在主程序中运行的,它还是一个单线程程序。在Unity中可以通过StartCoroutine方法来启动协同。
      StartCoroutine方法为MonoBehavior类中的一个方法,即该方法必须在MonoBehavior或继承于MonoBehavior的类中调用。StartCoroutine方法可以将返回值为IEnumerator的类型方法作为参数

    void Start()
    	{
    		StartCoroutine(doThing1());//开启doThing1协同程序
    	}
    	IEnumerator doThing1()//声明doThing方法
    	{
    		yield return StartCoroutine(doThing2());//开启doThing2协同程序
    	}
    	IEnumerator doThing2()
    	{
    		yield return new WaitForSeconds(2);//协同程序休眠2s
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12



    与销毁相关的方法

      在游戏的开发过程中,经常会遇见对象、组件、资源等在使用完毕后就失去了作用的情况,如果放任其不管,轻则影响项目运行效率,重则可能影响到项目的正常运行。因此,必须有一类方法来管理、删除这些没有用的资源。

    不同功能的Destroy方法
    函数功能
    Object.Destroy删除游戏对象、组件或资源
    NetWork.Destroy销毁网络对象
    MonoBehavior.OnDestroy脚本被销毁时调用

    Object.Destroy方法

    Object.Destroy方法可以将对象立即销毁,也可以设置时间后销毁。如果删除的对象是一个组件,则该组件会被移除。

    	public GameObject obj;
    	void Start()
    	{
    		Destroy(obj.GetComponent<Rigidbody>());//销毁游戏物体的刚体组件
    		Destroy(obj, 5);//5s后删除obj游戏对象
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    NetWork.Destroy方法

    NetWork.Destroy方法可以销毁网络对象,该对象有两种重载方式

    public static void Destroy(NetworkViewID viewID)
    public static void Destory(Gameobject gameobject)
    1、系统会删除所有和该ViewID相关的物体
    2、销毁网络上的游戏对象
    
    Network.Destory(GetComponent<NetworkView>().viewID)
    Network.Destory(gameobject)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    MonoBehaviour.OnDestroy方法

    MonoBehaviour.OnDestroy方法是MonoBehaviour中的销毁回调方法

  • 相关阅读:
    简单个人网页制作 个人介绍网页模板 静态HTML留言表单页面网站模板 大学生个人主页网页
    React 数据通信总结(父子组件、跨级组件、无关组件)
    OpenWrt之跳过tools编译
    2024年天津专升本文化课考试大纲发生了哪些变化
    基于thinkphp5利用QQ邮箱发送邮件的实现
    Datawhale 2024 年 AI 夏令营第二期——基于术语词典干预的机器翻译挑战赛
    jdbcUrl is required with driverClassName错误解决
    什么是RabbitMQ RabbitMQ详解
    【无标题】
    各类免费、好用的api汇总
  • 原文地址:https://blog.csdn.net/ht_game/article/details/125561995