访问非静态成员"UnityEngine.GameObject.tag"需要对象引用



我有一个游戏的统一代码,假设游戏对象标记名称为"Player",则该代码将跟随角色。但是我得到了一个代码错误,我不知道如何修复它。

错误

Assets/Script/CameraRunner.cs(10,32): error CS0120: An object reference   
is required to access non-static member `UnityEngine.GameObject.tag'

脚本

using UnityEngine;
using System.Collections;
public class CameraRunner : MonoBehaviour {

void FixedUpdate () 
{
    if (GameObject.tag == "Player") {
                    transform.position = new Vector3 (0, transform.position.y + 9f, -10);
            }
}
}

您需要使用gameObject.tag而不是GameObject.tag

为什么不使用内置的相机SmoothFollow.js脚本或iTween?两者都可以实现所需的功能,您只需稍微修改即可。iTween无处不在。

您是否也将脚本附加到主摄影机,即您想要的对象?你把这个脚本附加到哪里,如果它被分配给相机,那么GameObject是本地的,它只检测本地对象是否被标记为Player。如果它在玩家身上,那么对象的位置就会发生变化。剧本有很多错误,尤其是没有足够的信息来制定正确的回应。

在脚本中,要修复它,请执行以下操作并将其连接到您的相机。另外,如果你不这样做,不要忘记设置你的玩家变量和标签。

using UnityEngine;
using System.Collections;
public class CameraRunner : MonoBehaviour {
public GameObject player;
  void Start () {
    if (player == null)
      player = GameObject.FindWithTag("Player");
  }
  void FixedUpdate () {
    if (player != null)
    transform.position = new Vector3 (0, player.transform.position.y + 9f, -10);
  }
}

相关内容

最新更新