繁体   English   中英

更新统一3D渲染

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM