范围无法正常工作

时间:2015-02-04 12:16:17

标签: c# unity3d

我试图在我的int前面使用[Range(1f,3f)],以便我可以在我的检查器中获得一个滑块。但它给出了一个错误,上面写着“无法找到名称空间名称范围。您是否缺少using指令或程序集引用”。在每个例子中,我发现没有人会对我有所不同,可能是因为我使用较旧版本的Unity?我怎样才能在这个版本中实现它,或者这是不可能的?

using UnityEngine;
using System.Collections;

[ExecuteInEditMode]
public class AssignMaterial : MonoBehaviour {

    public bool assignMaterial;
    [Range(1, 3)] public int matId;

    void Update()
    {
        if(assignMaterial)
        {
            switch(matId)
            {
                case 1:
                this.renderer.material = Resources.Load("NodeMaterial" + matId.ToString()) as Material;
                break;
                case 2:
                this.renderer.material = Resources.Load("NodeMaterial" + matId.ToString()) as Material;
                break;
                case 3:
                this.renderer.material = Resources.Load("NodeMaterial" + matId.ToString()) as Material;
                break;
            }
        DestroyImmediate(this);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我认为可能是您使用的版本不支持这种情况。 我可以使用range属性确认的最低版本是unity 4.2

除了range属性,您可以改为编辑脚本。用一句话说:

AssignMaterial.matID = (int)EditorGUILayout.Slider(AssignMaterial.matID, 0, 3);

小旁注

您可能希望在那里获得一些尝试/捕获。就像现在一样,如果没有渲染器附加到对象上。您将稍微冻结一致,但如果没有分配,最好抓住此错误并处理该过程。