gzyueqian
13352868059

unity如何使用全局类实例变量?

更新时间: 2020-04-26 16:32:57来源: 粤嵌教育浏览量:7582

      Unity作为游戏开发的重要编程语言,重要的就是要把控全局,让玩家在玩游戏的时候可以全程轻松的切换到各种角色和环境,这个是非常的考验技术的。那么今天粤嵌科技的小编就来和大家讲解下unity如何使用全局类实例变量?

  1.主要思路是,给每一个脚本设置一个指向这个脚本的某个实例的全局变量,这样你就可以随时访问那个实例,而不必在检查器中一行一行搜索脚本。以下是它的运作方式:在主要的DialogueSystem.cs脚本,把变量放在顶部,与它包含的类有相同的类型,如下:public static DialogueSystem instance;or in JavaScript:static var instance : DialogueSystem;然后,在这个脚本的Awake()函数,你只要写:instance = this;后简单地把这个脚本依附到你的场景中的任何对象上,当Unity加载那个场景时,那个脚本实验就会给自己设置DialogueSystem.instance。


  2.它意味着如果我想访问我的对话系统,只需要写下:DialogueSystem.instance.SomePublicFunctionName();Unity就知道我想调用场景中的DialogueSystem的那个实例的功能。注意:这种做法要求在给定场景中只有一个脚本实例。因此,这对于大的组件非常管用,如对话系统,但我想它对于要在场景中多次出现的对象可能没什么用,或者会出问题。


  3. 使用callback(Delegate或Monobheaviour.SendMessage()):假如我们有一个NIS (non-interactive sequence),我们希望玩家角色走几步,停下,与NPC对话,然后当对话结束控制权回到玩家手中。可以简单地从NIS脚本中调用下面的函数,以激活这个对话系统:DialogueSystem.instance.SomeFunctionToActivateDialogue();但我们怎么知道对话什么时候结束,NIS脚本可以把控制权还给玩家?我们可以使用callback。当我们次调用DialogueSystem.instance.Whatever(),我们可以传一些参数给那个函数,当它结束调用通知调用它的脚本时就可以使用的参数。做法有几种。我更倾向于使用C#的Delegate。使用Javascript,就不要选它。


  以上就是粤嵌科技的小编给大家整理的关于unity如何使用全局类实例变量的问题了,如果说你对于学习unity有兴趣的话,那么粤嵌科技欢迎大家来我们公司的unity培训班进行实地考察,也可以点击我们文章下面的获取试听资格按钮来获取我们的unity课程免费试听资格,在试听中可以更加深入的了解我们粤嵌科技。

免费预约试听课