You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity编辑器脚本:如何在Script B的Inspector中显示Script A的数据

解决方案

问题根源在于你没有在Script B中声明Script A的引用字段,且编辑器脚本错误地尝试直接查找属于Script A的IntValue属性——而serializedObject对应的是Script B的实例,自然找不到不属于它的字段。以下是修正步骤:

1. 给Script B添加Script A的引用

在Script B中添加一个公共的Script A引用字段,让Unity可以序列化这个关联关系:

public class ScriptB : MonoBehaviour
{
    // 添加Script A的引用,必须设为public或加[SerializeField]才能被序列化
    public ScriptA scriptAReference;

    void Start() { }
    void Update() { }
}

2. 修改编辑器脚本,通过引用访问Script A的字段

编辑器脚本需要先找到Script B中的scriptAReference属性,再通过该属性的路径访问其内部的IntValue:

using UnityEditor;
using UnityEngine;

[CustomEditor(typeof(ScriptB))]
public class MyEditor : Editor
{
    private SerializedProperty scriptARefProperty;
    private SerializedProperty intValueProperty;

    private void OnEnable()
    {
        // 先找到Script B中的scriptAReference属性
        scriptARefProperty = serializedObject.FindProperty("scriptAReference");
        // 通过属性路径访问Script A中的IntValue
        intValueProperty = scriptARefProperty.FindPropertyRelative("IntValue");
    }

    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        // 绘制Script B的默认Inspector
        DrawDefaultInspector();

        // 当Script A引用不为空时,才显示IntValue字段
        if (scriptARefProperty.objectReferenceValue != null)
        {
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("来自Script A的数据", EditorStyles.boldLabel);
            EditorGUILayout.PropertyField(intValueProperty);
        }
        else
        {
            EditorGUILayout.HelpBox("请先指定Script A的引用", MessageType.Warning);
        }

        serializedObject.ApplyModifiedProperties();
    }
}

3. 使用说明

  • 将Script A挂载到场景中的某个GameObject上
  • 选中挂载了Script B的GameObject,在Inspector面板中拖拽挂载了Script A的对象到Script A Reference字段
  • 此时就能在Script B的Inspector中看到并修改Script A的IntValue了

Script A的代码无需修改,保持原样即可:

public class ScriptA : MonoBehaviour
{
    public int IntValue;
}

内容的提问来源于stack exchange,提问作者talha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:52:12