Unity3D – 获取组件

在Unity3D C#获取组件的最简单方法是什么?

我的情况:

 GameObject gamemaster. //C# script MainGameLogic.cs(attached to gamemaster). A boolean backfacedisplayed(in MainGameLogic.cs). A function BackfaceDisplay()(in MainGameLogic.cs). 

另一个C#脚本FlipMech.cs ,我需要从MainGameLogic.cs检查if(backfacedisplayed == TRUE) ,我将从MainGameLogic.cs调用MainGameLogic.cs BackfaceDisplay() 。 我怎么能在C#中做到这一点?

在js是相当直接的。 在FlipMech.js

 //declare gamemaster var gamemaster:GameObject; 

然后我需要的地方:

 if(gamemaster.GetComponent(MainGameLogic).backfacedisplayed==true) { gamemaster.GetComponent(MainGameLogic).BackfaceDisplay(); } 

但似乎C#比这更复杂。

在c#中,你将获得使用它的组件,

 if(gamemaster.GetComponent().backfacedisplayed==true) { gamemaster.GetComponent().BackfaceDisplay(); } 

当我反驳同样的问题时, 尼克的回答对我不起作用。 该脚本涉及具有自己的命名空间的Unity3d资产商店。 当我将类放在命名空间中时,它开始工作。

 using UnityEngine; using System.Collections; using Devdog.InventorySystem; namespace Devdog.InventorySystem.Demo { public class changeStat : MonoBehaviour { // ... rest of the code including the gameObject.GetComponent<>(); } }