你有一个脚本【myScript 】,它有一个public的field字段,叫xxx,如何获取这个字段的值
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class myScript : MonoBehaviour
{
public bool installed;
}
一、通过GetComponent()获取
这是最常见的方法
go.GetComponent<myScript>().installed
二、通过反射获取
这种获取方式不需要脚本的名字,不需要用GetComponent().installed
反射主要用GetType,用到的function主要有:
GetType()
GetField()
GetValue()
注意GetValue(arg)的参数arg,arg是myScript实例化的对象
一个例子:
public MonoBehaviour myScript;
void Start()
{
//
}
void Update()
{
//
}
#if UNITY_EDITOR
[ContextMenu("测试")]
#endif
void Test4()
{
Debug.Log($"物体的名字:{myScript.name}");
var scriptComponent = myScript.GetType();
Debug.Log($"脚本的名字:{scriptComponent.Name}");
var val = (bool)scriptComponent.GetField("installed").GetValue(myScript);
Debug.Log($"字段【installed】的值为:{val}");
}
- 脚本和赋值关系
- 测试
测试结果