【问题标题】:get component error Unity3d C#获取组件错误 Unity3d C#
【发布时间】:2014-06-19 04:07:09
【问题描述】:

这是我不断收到空引用异常的脚本,但我不知道该怎么办?我在哪里分配什么?

using UnityEngine;
using System.Collections;

public class CurrencyManagment : MonoBehaviour {

public int Coins;
public CreditPlayer CreditPlayerScript;

void Start ()
{
    CreditPlayerScript = GetComponent<CreditPlayer>();

}

void Awake()
{
    CreditPlayerScript = GetComponent<CreditPlayer>();

}

void Update ()
{
    Coins = CreditPlayerScript.CoinsTempContainer;

}
}

【问题讨论】:

  • 你确定你确实有一个CreditPlayer组件附加到使用CurrencyManagement的对象上吗?
  • @Will 我是否有一个名为 credit player 的脚本,如启动函数中所述 CreditPlayerScript = GetComponent();那条线指定了它吗??
  • 不,该行检索已附加到对象的组件。
  • @wiz3kid 那么我需要做什么我有点困惑抱歉??

标签: c# unity3d game-engine


【解决方案1】:

您似乎没有将CreditPlayer 脚本附加到与CurrencyManager 相同的游戏对象上。只需将脚本拖放到游戏对象(游戏停止,未运行)。

您也可以通过添加RequireComponent 属性以编程方式执行此操作,该属性将自动添加您指定的所有脚本。看看this document

【讨论】:

  • 好的,但是现在当硬币被销毁时,两个脚本都可以使用。我需要播放器运行硬币和存储在其他地方的货币管理脚本,这样货币管理脚本就不会被硬币破坏。 @罗伯托
  • @user3682512 在这种情况下,您需要将 CurrencyManagement 设为常规全局类,而不是组件。
  • @user3682512 是的,wiz3kid 是对的。谷歌“单身”,这就是你所需要的。
猜你喜欢
  • 2015-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多