我尝试使用此脚本更改摄像头位置但是我收到错误 Assets / Scripts / ChangeView.cs(15,35):错误CS0120:访问非静态成员需要对象引用UnityEngine.Transform.position'
我是团结和C#的新手。
using UnityEngine;
using System.Collections;
public class ChangeView : MonoBehaviour {
private bool view;
private Transform trans;
void Start () {
view = true;
trans = GetComponent<Transform> ();
}
public void ChangeCamera () {
if (view == true) {
view = false;
Transform.position = new Vector3 (0.0f, 5f, -5f);
}
else {
view = true;
Transform.position = new Vector3 (0.0f, 1f, -1f);
}
}
}
答案 0 :(得分:0)
不要使用实际的Transform类,使用trans。 (我假设你在检查员中指定了这个)
所以你需要
trans.position = Vector3.MoveTowards()或 trans.position = new Vector3()
问题是你正在试图操纵Transform,好像它是一个静态类,你根本就没有在逻辑中引用trans。
编辑:此外,如果您可以从检查器分配变量,那么最好使用GetComponent。在您的情况下,由于它继承了monobehaviour,您已经可以通过以下
进行转换gameObject.transform.position
或只是
转换位置
除非另一个对象为Transform,否则无需为Transform创建私有变量。