C# 成员<;方法>;不能使用
我正在Unity的一个项目中工作,我需要使用脚本获取对象的摄影机,我使用的代码是:C# 成员<;方法>;不能使用,c#,unity3d,C#,Unity3d,我正在Unity的一个项目中工作,我需要使用脚本获取对象的摄影机,我使用的代码是: Camera cam = GameObject.FindWithTag("string").GetComponent<Camera>(); Camera-cam=GameObject.FindWithTag(“字符串”).GetComponent(); 然而,我得到了这个信息 无法使用实例引用访问成员GameObject.FindWithTag(字符串);改为使用类型名对其进
Camera cam = GameObject.FindWithTag("string").GetComponent<Camera>();
Camera-cam=GameObject.FindWithTag(“字符串”).GetComponent();
然而,我得到了这个信息
无法使用实例引用访问成员GameObject.FindWithTag(字符串);改为使用类型名对其进行质量控制
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类摄像机控制器:单行为
{
公共摄像机1;
公共摄像机cam2;
[序列化字段]
公共游戏对象[]摄像机;
PosicionamientoDeObjetos mensajero;
公共游戏对象对象;
Color COLORECAM=新颜色(5,4,2,0.5f);
私人摄像机Hola;
//在第一帧更新之前调用Start
void Start()
{
camera1.enabled=true;
cam2.enabled=false;
}
无效cambiocamara()
{
if(Input.GetKeyDown(KeyCode.Q)){
cam2.enabled=false;
camera1.enabled=true;
}else if(Input.GetKeyDown(KeyCode.C)){
camera1.enabled=false;
cam2.enabled=true;
}
}
//每帧调用一次更新
无效更新()
{
cambiocamara();
if(Input.GetKeyDown(KeyCode.M))
{
mensajero=FindObjectOfType();
mensajero.prefables[0].GetComponent();
Coger();
调试日志(cam2);
}
}
公共空间{
Hola=objetoActalCam.FindWithTag(“CameraSecond”).GetComponent();
}
}
FindWithTag
方法接收字符串作为参数,并传递字符串类型本身,而不是字符串类型的变量
因此,请尝试使用引号,“字符串”,而不是简单的字符串:
Camera cam = GameObject.FindWithTag("String").GetComponent<Camera>();
Camera-cam=GameObject.FindWithTag(“字符串”).GetComponent();
编辑:
在你的问题版本问题被揭露后,你没有打电话
Camera cam = GameObject.FindWithTag("string").GetComponent<Camera>();
Camera-cam=GameObject.FindWithTag(“字符串”).GetComponent();
就像你输入的问题一样。相反,你称之为:
Camera cam = gameObjectVariable.FindWithTag("string").GetComponent<Camera>();
Camera-cam=gameObjectVariable.FindWithTag(“字符串”).GetComponent();
您必须使用
GameObject
类型调用它,而不是使用GameObject
变量objetoActalCam
是GameObject
的一个实例
错误消息告诉您:
无法使用实例引用访问成员GameObject.FindWithTag(String)
;改为使用类型名对其进行质量控制
因此,请遵循它的建议:
public void ObtenerCamara(){
Hola = GameObject.FindWithTag("CameraSecond").GetComponent<Camera>();
}
public void ObtenerCamara(){
Hola=GameObject.FindWithTag(“CameraSecond”).GetComponent();
}
(具有讽刺意味的是,这与您最初提供给我们的代码非常接近)您是否已将一个变量/字段
GameObject
命名为您所显示的行附近的某个位置?我们确实需要一个能够帮助您的工具,但这只是一个示例,我的实际代码是这样的(Cam1已经声明)Cam1=CurrentObject.FindWithTag(“SecondCamera”)。GetComponent();这对我来说是行不通的:当你发布准确的代码和错误日志信息时,否则这将很难解决it@JonathanMurilloJaramillo您是从变量调用FindObjectWithTag,而不是从GameObject类型调用FindObjectWithTag(),因此,请使用GameObject.FindObjectWithTag()而不是使用ObjectActalCam.FindObjectWithTag()!你是个天才,非常感谢,我的代码很有效,你是best@JonathanMurilloJaramillo不客气,请记住标记并投票给正确答案(我的或达米恩的答案也是正确的),以便其他用户可以将其视为已解决^^
public void ObtenerCamara(){
Hola = GameObject.FindWithTag("CameraSecond").GetComponent<Camera>();
}