这是我的代码,我正在试图找出这一行的问题..
instance = new GameObject(“gamestate”)。AddComponent();
以下是我收到的错误:The type arguments for method 'UnityEngine.GameObject.AddComponent<T>()' cannot be inferred from the usage. Try specifying the type arguments explicitly
using UnityEngine;
using System.Collections;
public class gamestate : MonoBehaviour
{
//Declare Properties
private static gamestate instance;
public static gamestate Instance
{
get
{
if(instance == null)
{
instance = new GameObject( "gamestate").AddComponent ();
}
return instance;
}
}
public void startState()
{
print ("Creating a new game state");
}
}
答案 0 :(得分:1)
这一行:
instance = new GameObject( "gamestate").AddComponent ();
具体来说,这个电话:
AddComponent ();
您想添加哪种组件?我们假设您要添加AudioSource
:
AddComponent<AudioSource>();
从上下文来看,您似乎想要gamestate
:
AddComponent<gamestate>();
为了您自己的参考,这些被称为generics,它们与C ++中的模板类似。
顺便说一句,通常的做法是将类名称大写(例如Gamestate
或GameState
)。编译器不关心,但其他开发人员可能会这样做。
答案 1 :(得分:1)
我想我可能会遵循相同的例子! ; - )
您应该更改以下行:
instance = new GameObject( "gamestate").AddComponent ();
有:
instance = new GameObject( "gamestate").AddComponent<gamestate>();
他们的完整代码在这个pastebin上:http://pastebin.com/YPJTGLwX