需要对象引用才能访问非静态成员`UnityEngine.GameObject.tag'
问题描述:
我有一个游戏的统一代码,假设游戏对象标签名称为“玩家”,假设该游戏遵循该字符。但我得到一个代码错误,我不知道如何解决它。需要对象引用才能访问非静态成员`UnityEngine.GameObject.tag'
错误
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);
}
}
}
答
你为什么不只是使用内置的摄像头SmoothFollow.js脚本或的ITween?两者都符合要求,你只需要稍微修改它。 iTween无处不在。
你还将脚本附加到主摄像头,你想要的对象?如果将该脚本附加到相机,那么GameObject是本地的,它只会检测本地对象是否标记为播放器。如果它在玩家身上,那么对象的位置正在改变。脚本有很多错误,特别是没有足够的信息来制定适当的响应。
在解决它的脚本中,执行以下操作并将其附加到您的相机。另外不要忘记设置你的播放器变量,并设置你的标签,如果你不这样做。
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);
}
}
答
您需要使用gameObject.tag
而不是GameObject.tag
。
为什么不直接使用内置的相机SmoothFollow.js脚本或iTween?两者都符合要求,你只需要稍微修改它。 iTween无处不在。 – ApolloSoftware 2015-02-07 07:45:20
您是否还将脚本附加到主摄像头,您想要的对象?如果将该脚本附加到相机,那么GameObject是本地的,它只会检测本地对象是否标记为播放器。如果它在玩家身上,那么对象的位置正在改变。脚本有很多错误,特别是没有足够的信息来制定适当的响应。 – ApolloSoftware 2015-02-07 07:51:32