UnityScript - 如何循环遍历 A Class 的 Public 属性
UnityScript - How To Loop Through Public Properties of A Class
我在 UnityScript
中有以下脚本,它在 Unity Editor 中称为 JavaScript
但并不完全相同,尤其是对于循环遍历对象。
public class UpgradeProfile extends MonoBehaviour {
public var brakeSpeed : float = 0;
public var jumpForce : float = 0;
public var maxJumps : int = 1;
};
如何遍历此 class 的所有属性,例如,记录值或将它们与同一 class 的另一个成员的值相加?
注意: UnityScript 不是 JavaScript 或 C#,因此与这些语言相关的答案不会回答这个问题。
这对我来说很有效,可以获取属性和值。
#pragma strict
public var test1 = 10;
public var test2 = 11;
function Start ()
{
for(var property in this.GetType().GetFields())
{
Debug.Log("Name: " + property.Name + " Value: " + property.GetValue(this));
}
}
这会打印出
Name: test1 Value: 10
Name: test2 Value: 11
如果您想对其他组件执行此操作,请将 this
替换为 component
而不是
我在 UnityScript
中有以下脚本,它在 Unity Editor 中称为 JavaScript
但并不完全相同,尤其是对于循环遍历对象。
public class UpgradeProfile extends MonoBehaviour {
public var brakeSpeed : float = 0;
public var jumpForce : float = 0;
public var maxJumps : int = 1;
};
如何遍历此 class 的所有属性,例如,记录值或将它们与同一 class 的另一个成员的值相加?
注意: UnityScript 不是 JavaScript 或 C#,因此与这些语言相关的答案不会回答这个问题。
这对我来说很有效,可以获取属性和值。
#pragma strict
public var test1 = 10;
public var test2 = 11;
function Start ()
{
for(var property in this.GetType().GetFields())
{
Debug.Log("Name: " + property.Name + " Value: " + property.GetValue(this));
}
}
这会打印出
Name: test1 Value: 10
Name: test2 Value: 11
如果您想对其他组件执行此操作,请将 this
替换为 component
而不是