我想让一个函数返回一个通用的游戏对象,然后我可以调用一个方法。这行不通。
我的游戏世界中有不同的对象。我想要一个可以调用的函数,它将返回在给定位置找到的对象。然后,检查找到什么类型的对象。我的每个对象都有一个返回对象类型的 GetObjectType 方法。
我非常感谢您可以发送给我的任何帮助。感谢您的关注。
GameObject spotObjectLocation1;
spotObjectLocation1 = GetObjectAtLocation(player.transform.position
+ checkDirection);
// THIS IS WHAT I WANT TO DO THAT DOESN'T WORK
if (spotObjectLocation1.GetObjectType() == "box"){ }
GameObject GetObjectAtLocation(Vector3 location)
{
GameObject[] objects = GameObject.FindGameObjectsWithTag("boxes");
for (int i = 0; i < objects.Length; i++)
{
if (objects[i].transform.position.x == location.x
&& objects[i].transform.position.z == location.z)
{
return objects[i];
}
}
GameObject[] objects = GameObject.FindGameObjectsWithTag("blocks");
for (int i = 0; i < objects.Length; i++)
{
if (objects[i].transform.position.x == location.x
&& objects[i].transform.position.z == location.z)
{
return objects[i];
}
}
}
public class ObjectBox : MonoBehaviour {
public string GetObjectType()
{
return "box";
}
}
public class ObjectBlock : MonoBehaviour {
public string GetObjectType()
{
return "block";
}
}