5

在 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)中调用。我怎样才能在 C# 中做到这一点?BackfaceDisplay()MainGameLogic.cs

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

//declare gamemaster
var gamemaster:GameObject;

然后在我需要的地方:

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

但似乎C#比这要复杂得多。

4

2 回答 2

7

在 c# 中,您将使用它来获取组件,

if(gamemaster.GetComponent<MainGameLogic>().backfacedisplayed==true)
    {
        gamemaster.GetComponent<MainGameLogic>().BackfaceDisplay();
    }
于 2014-01-24T08:51:58.967 回答
1

当我反驳同样的问题时,尼克的回答对我不起作用。该脚本涉及一个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<>();
  }
}
于 2015-06-24T18:08:45.593 回答