gpt4 book ai didi

c# - Unity3d MeshRender

转载 作者:太空狗 更新时间:2023-10-29 20:45:58 24 4
gpt4 key购买 nike

我正在尝试使用 C# 在 Unity3d 中禁用和启用 MeshRender 组件,但是我收到以下错误,

error CS0120: An object reference is required to access non-static member `UnityEngine.GameObject.GetComponent(System.Type)'

我正在使用的代码行如下。我在同一个函数中使用它。

MeshRenderer showZone = GameObject.GetComponent<MeshRenderer>();

此外,我在这里发帖而不是 Unity Answers,因为我在这里得到的回复要快得多,而且无论结果如何,它总是有用的信息。

最佳答案

您遇到了几个问题。首先,您正在尝试使用 GetComponent<>在类而不是对象的实例上。这直接导致你的第二个问题。搜索特定的 GameObject 后您没有使用结果,而是试图禁用 GameObject 的渲染器包含脚本。三、C#区分大小写,Renderer是一个类,而 renderer是对 Renderer 实例的引用附于GameObject

此代码片段结合了所有内容:找到 GameObject并禁用它的渲染器

GameObject go = GameObject.FindWithTag("zone1");
if (go != null) { // the result could be null if no matching GameObject is found
go.renderer.enabled = false;
}

你可以使用 go.GetComponent<MeshRenderer>().enabled = false;而不是 go.renderer. enabled = false;但是通过使用 renderer你不需要知道 GameObject 使用了哪种渲染器.它可能是 MeshRendererSpriteRenderer例如,renderer始终指向 GameObject 使用的渲染器, 如果存在的话。

关于c# - Unity3d MeshRender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24231669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com