zoukankan      html  css  js  c++  java
  • Unity脚本基础Day01

    1>.Unity3D中的协程(coroutine)和C#线程之间的区别是什么?

    多线程程序同时运行多个线程,而在任一指定时刻只有一个协程在运行,并且这个证在运行的协同程序值在必要时才被挂起.除主线程之外的线程无法访问Unity3D的对象,组件,方法.

    Unity3D没有多线程的概念,不过unity也给我们提供了StartCoroutine(协同程序)和LoadLevelAsync(异步加载关卡)后台加载场景的方法

    StartCoroutine为什么叫协同?     程序呢,所谓协同,就是当你在StarCoroutine的函数体里处理一端代码时,利用yield语句等执行结果,这期间不影响主程序的继续执行,可以协同工作

    2>.简述Unity3D支持的作为脚本的语言的名称

    unity的脚本语言基于Mono的.Net平台上运行,可以使用.Net库,这也为XML,数据库,正则表达式等问题提供了很好的解决方案.unity里的脚本都会经过编译,他们的运行速度也很快,这三种语言实际上的功能和运行速度是一样的,区别主要体现在语言特性上.

    JavaScript:和网页中常用的JavaScript不一样,它编译后的运行速度很快,语法方面也会有不少区别.

    Boo:可以看做是Python语言的变种,又糅合了Ruby和C#的特性,它是静态类型语言

    3>.Unity3D是否支持写成多线程程序?如果支持的话需要注意什么?

    仅能从主线程中访问Unity3D的组件,对象和Unity3D系统调用

    支持:如果同时你要处理很多事情或者与Unity的对象互动小可以用thread,否则使用coroutine

    注意:C#中有lock这个关键字,以确保只有一个线程可以在特定时间内访问特定的对象

  • 相关阅读:
    如何将DataTable转换成List<T>
    关于SqlDataAdapter的使用
    VS 2010中JS代码折叠插件
    ASP.net中的几种分页方法
    学习jquery基础教程的一些笔记
    js中innerHTML与innerText的用法与区别
    SpringBoot 中使用shiro注解使之生效
    redis分布式锁
    使用ZSetOperations(有序)操作redis
    使用SetOperations(无序)操作redis
  • 原文地址:https://www.cnblogs.com/qipei/p/10028537.html
Copyright © 2011-2022 走看看