Unity中如何获取一个public类中的成员
时间: 2023-06-09 10:07:20 浏览: 201
变量?
在Unity中获取一个public类中的成员变量,可以使用该类的实例来访问。首先需要创建该类的实例,然后通过实例来访问成员变量。例如,如果有一个名为 MyClass 的类,并且它有一个public成员变量 myPublicVariable,那么可以这样访问它:
MyClass myClassInstance = new MyClass();
myClassInstance.myPublicVariable;
这将返回 myPublicVariable 的值。注意,只有public成员才能被外部访问。如果该成员变量是private或protected,则只能在该类内部访问。
相关问题
unity 成员相同的两个类相互转为
在 Unity 中,如果你要将成员相同的两个类相互转换,可以使用以下代码:
```
public class ClassConverter : MonoBehaviour
{
public Class1 class1Object;
public Class2 class2Object;
public void ConvertClasses()
{
Class1 tempClass1 = new Class1(class2Object.variable1, class2Object.variable2, class2Object.variable3);
Class2 tempClass2 = new Class2(class1Object.variable1, class1Object.variable2, class1Object.variable3);
class1Object = tempClass1;
class2Object = tempClass2;
}
}
```
在上述代码中,我们定义了两个公共变量 class1Object 和 class2Object,分别代表成员相同的两个类 Class1 和 Class2 的实例。在 ConvertClasses() 方法中,我们使用临时变量 tempClass1 和 tempClass2 创建了两个新的实例,通过将 Class2 的变量值赋给 Class1 的变量,以及将 Class1 的变量值赋给 Class2 的变量,实现了成员相同的两个类的相互转换。
你可以将此脚本添加到场景中的一个空 GameObject 上,然后将 class1Object 和 class2Object 变量分别指向需要转换的两个类的实例即可。注意,在此示例中,我们假设 Class1 和 Class2 有相同的三个变量,你需要根据实际情况修改代码。
unity 成员相同的两个类相互序列化
在 Unity 中,成员相同的两个类相互序列化可以使用以下代码:
```
using UnityEngine;
using System;
[Serializable]
public class Class1
{
public int variable1;
public float variable2;
public string variable3;
public Class1(int v1, float v2, string v3)
{
variable1 = v1;
variable2 = v2;
variable3 = v3;
}
}
[Serializable]
public class Class2
{
public int variable1;
public float variable2;
public string variable3;
public Class2(int v1, float v2, string v3)
{
variable1 = v1;
variable2 = v2;
variable3 = v3;
}
}
public class SerializationExample : MonoBehaviour
{
public Class1 class1Object;
public Class2 class2Object;
public void SerializeClasses()
{
string class1Json = JsonUtility.ToJson(class1Object);
string class2Json = JsonUtility.ToJson(class2Object);
class1Object = JsonUtility.FromJson<Class1>(class2Json);
class2Object = JsonUtility.FromJson<Class2>(class1Json);
}
}
```
在上述代码中,我们定义了两个成员相同的类 Class1 和 Class2,它们都有三个公共变量 variable1、variable2 和 variable3。在 SerializationExample 类中,我们定义了两个公共变量 class1Object 和 class2Object,分别代表 Class1 和 Class2 的实例。在 SerializeClasses() 方法中,我们使用 JsonUtility.ToJson() 方法将 class1Object 和 class2Object 序列化为 JSON 格式的字符串,然后使用 JsonUtility.FromJson() 方法将 class2Object 的 JSON 字符串反序列化为 Class1 的实例,将 class1Object 的 JSON 字符串反序列化为 Class2 的实例,从而实现了成员相同的两个类的相互序列化。
你可以将此脚本添加到场景中的一个空 GameObject 上,然后将 class1Object 和 class2Object 变量分别指向需要序列化的两个类的实例即可。
阅读全文