我有一个游戏的统一代码,如果游戏对象标签名称为“玩家”,则假设该游戏遵循该角色。但我收到代码错误,我不知道如何解决它。
错误
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);
}
}
}
答案 0 :(得分:2)
您需要使用gameObject.tag
代替GameObject.tag
。
答案 1 :(得分:0)
为什么不直接使用内置摄像头SmoothFollow.js脚本或iTween?两者都做了所需的,你只需稍微修改它。 iTween无处不在。
您是否还将脚本附加到主摄像机,您想要的对象?你将这个脚本附加到哪里,如果它被分配给Camera,那么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);
}
}