我有一个游戏的统一代码,假设游戏对象标记名称为"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);
}
}