[英]update render in unity 3D
我是一个完全了解Unity的初学者,我正在尝试使用Unity 2017.1f1本书中的教程。 但是,当我来到“ //”之后的行时遇到了一个问题,因为它在Unity中出现了一个错误,提示“访问非静态成员'UnityEngine.GameObject.GetComponent()'需要对象引用”。 任何想法如何纠正它?
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;
}
就像@Programmer所说的那样,
GameObject.GetComponent<Renderer>();
您正在尝试从GameObject类获取组件渲染器。 相反,您应该做的是:
gameObject.GetComponent<Renderer>();
这将获得脚本附加到的游戏对象的组件渲染器。
注意:GameObject是一个类。 gameObject是一个变量,它引用当前脚本附加到的游戏对象。
GetComponent<T>()
是一个实例函数。 如果要在游戏对象上获取组件,只需在场景中该对象的实例上调用此方法即可。
在您的示例中,您似乎只是想获得对同一游戏对象上组件的引用。 没什么比这更简单的了,只需使用
rend = GetComponent<Renderer>();
关于“过时的命令”,我相信您会对每个游戏对象的默认renderer
属性感到困惑。 它确实已经过时,并且在某些时候将被删除。 但是,看起来您没有使用该属性,这很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.