统一更新渲染3D
我是一个完全初学者团结,我试图从一本书使用统一2017.1f1遵循教程。然而,当我在“//”之后来到这一行时,我遇到了一个问题,因为它在Unity中出现一个错误,表示需要访问对象引用来访问非静态成员'UnityEngine.GameObject.GetComponent()'。任何想法如何纠正它?统一更新渲染3D
public class LaunchBall : MonoBehaviour
{
public Vector3 launchBallHome = new Vector3(0.0f, 0.0f, 0.4f);
public float lbSpeed;
public bool checkLBToggle = true;
private Color lbColor;
Renderer rend;
bool lbJump;
// Use this for initialization
void Start()
{
gameObject.transform.position = launchBallHome;
lbSpeed = 0.1f;
lbColor = new Color(0.1f, 0.2f, 0.5f);
//
rend = GameObject.GetComponent<Renderer>();
lbJump = true;
}
GetComponent<T>()
是一个实例函数。如果您想获取游戏对象上的组件,只需在场景中该对象的实例上调用此方法即可。
在您的示例中,您似乎只想获取对同一游戏对象上组件的引用。那么有什么比这更简单,只需使用
rend = GetComponent<Renderer>();
关于“过时的命令”我相信你在每场比赛的对象上的默认renderer
属性混淆。它确实已经过时,并且在某些时候会被删除。然而,它看起来并不像你使用那个属性,这很好。
因为只是用“g”替换“G”应该修复它,所以我不认为只需要印刷错误就可以回答问题。评论部分应该用于帮助OP和问题关闭。顺便说一下,这个问题对未来的任何人都没有帮助。 – PassetCronUs
正如@Programmer说,
GameObject.GetComponent<Renderer>();
您正在试图从游戏对象类的组件渲染器。 什么,而不是你应该做的是:
gameObject.GetComponent<Renderer>();
这将拿到剧本附着在游戏对象的组件渲染器。
注意:GameObject是一个类。 gameObject是一个变量,它引用当前脚本所附的gameobject。
我不认为需要用印刷错误来回答问题,因为简单地用“g”替换“G”应该修复它。评论部分应该用于帮助OP和问题关闭。顺便说一下,这个问题对未来的任何人都没有帮助。 – PassetCronUs
什么似乎是问题?你有错误吗? – Thalthanas
这不是一个“过时的命令”。这是你的一个简单的错字。它应该是'gameObject' **而不是''GameObject'。 'gameObject'是一个已经声明的变量,而'GameObject'是一个类。再次,'GameObject.GetComponent()'应该是'gameObject.GetComponent ()'。作为一个简单的印刷错误关闭。 –
Programmer