UNITY需要对象引用才能访问非静态成员`Outline.OutlineMode'

时间:2018-10-21 14:50:28

标签: unity3d

当您靠近轮廓线时,我正在尝试创建轮廓线,但是我一直都遇到相同的错误。

    void Update () {
    if (Input.GetKeyDown(KeyCode.E)){
    var outline = gameObject.AddComponent<Outline>();

    outline.OutlineMode = Outline.Mode.OutlineAll;
    outline.OutlineColor = Color.yellow;
    outline.OutlineWidth = 5f;
    }

}

void OnTriggerStay(Collider other) {
    if (Outline.OutlineMode == Outline.Mode.OutlineAll) {
            Debug.Log("test");

    }


}

如果我按E则它起作用,并且如果我将其更改为ontriggerstay也可以,但是我尝试只应用一次,因为如果打开它会出现一些错误。我必须说的是,我正在使用一种称为“快速概述”的资产

对不起,我的英语很差,请给我解释和谢谢

1 个答案:

答案 0 :(得分:1)

将轮廓添加到Awake()中的对象,然后将其设置为禁用。

然后在OnTriggerEnter()中启用它,并在OnTriggerExit()中禁用它

这将使您无法制作多份副本,并且仅当您处于触发器范围内时才处于活动状态