gpt4 book ai didi

c# - Unity3D - 一种将一个字段的值与另一个字段或值进行比较的通用方法

转载 作者:太空宇宙 更新时间:2023-11-03 15:28:23 25 4
gpt4 key购买 nike

在 Unity3D 上有一个叫做“UnityEvent”的东西。只要方法是公共(public)的,我就可以在任何类的任何实例上调用任何方法。它也有漂亮的 GUI。

public class MyEventType : UnityEvent { }
public MyEventType OnEvent;
void Main(){
OnEvent.Invoke();
}

我想要完成的是制作一个任务和对话系统。到目前为止,我可以使用这个东西来触发在其他地方编写脚本的事件。但是,我还需要一些东西来检查一些变量的值是否小于、小于、等于、小于或等于、小于或等于任何给定值或不同的变量。

例如:我们的英雄来到医院。他和医生谈话。对话 Controller 必须检查玩家的健康状况(可通过 character.stats.currentHP 访问)是否小于他的最大健康状况(character.stats.maxHP),如果是,屏幕上会出现一个选项“What's up doc?”。

当然,我可以为每个对话选项使用不同的脚本,这样会更简单,但重点是让不知道如何编写代码的人(比如我)构建任务和对话。我考虑过 system.reflection,但不知道如何让它发挥作用。

最佳答案

问题已通过 System.Reflection 解决,我需要了解如何做我需要做的事情就是一遍又一遍地阅读文档,直到我理解它。显然,我几乎只需要成对列出此类类:

public class FieldReference
{
public GameObject gObject;
public string component;
public string fieldName;
public string value {
get {
return gObject.GetComponent (component).GetType ().GetField (fieldName).GetValue (gObject.GetComponent (component)).ToString ();
}
}
}

编写一些代码来比较它们和自定义检查器编辑器。

我应该更频繁地阅读文档。

关于c# - Unity3D - 一种将一个字段的值与另一个字段或值进行比较的通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34456140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com