版本: Unity 6 (6000.0)
语言English
  • C#

PrefabUtility.GetCorrespondingObjectFromSource

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实阅读了用户提出的每项修改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static TObject GetCorrespondingObjectFromSource(TObject componentOrGameObject);

参数

componentOrGameObject 要从中查找对应对象的物体。

返回值

TObject 对应的物体或 null。

描述

检索 source 的对应资源对象,如果找不到则返回 null。

使用此方法获取 source 实例化的预制资源对象。

例如,在下图中,预制资源“A”包含一个嵌套的子预制资源“B”,该预制资源包含一个嵌套的子预制资源“C”。



当将游戏对象 C(层次结构中嵌套的预制资源 C 的实例)作为源传递给此方法时,此方法将从资源“预制资源 A”返回对象“C(嵌套预制资源)”。

以下示例脚本在编辑器中添加了一个菜单项,该菜单项启动一个简单的向导,允许您测试此方法的结果。

using UnityEditor;
using UnityEngine;
public class AssetSourceTestWizard : ScriptableWizard
{
    public GameObject instance;

[MenuItem("Test/Asset Source Test Wizard")] static void CreateWizard() { ScriptableWizard.DisplayWizard<AssetSourceTestWizard>("Asset Source Test Wizard", "Do Test"); }

void OnWizardCreate() { var o1 = PrefabUtility.GetCorrespondingObjectFromSource(instance); Debug.Log("Corresponding object from source: " + o1.name + " from: " + AssetDatabase.GetAssetPath(o1)); } }