Organisation des points de connaissance de l'éditeur Unity (créer une vue de scène personnalisée 1)

 //自定义场景视图的四种模式
 public enum E_Mode
  {
    
    
      View,
      Paint,
      Edit,
      Erase,
  }
//OnSceneGUI 绘制场景视图的GUI 不需要重写
 private void OnSceneGUI()
 {
    
    
     DrawModeGUI();
 }
//绘制场景模式GUI
private void DrawModeGUI()
{
    
    
    //获取枚举里所有的项目
    List<E_Mode> modes = EditorUtils.GetListFromEnum<E_Mode>();
    
    //保存项目的名称
    List<string> modeLabels = new List<string>();
    foreach (E_Mode mode in modes)
    {
    
    
        modeLabels.Add(mode.ToString());
    }

    //绘制场景视图GUI 需要使用Handles类
    //绘制场景视图GUI需要在 BeginGUI EndGUI方法对之间
    Handles.BeginGUI();

    //指定在场景视图的哪一个区域进行绘制
    //场景试图坐标 左上角为(0,0)
    GUILayout.BeginArea(new Rect(10f,10f,360f,40f));

    //具体绘制操作 绘制toolBar
    //把Toolbar  _CurrentMode的返回值 返回到了_selectedMode里的原因是 为了以后比较选中模式 和当前模式 是否相同
    //来判断 是否选择了别的模式
    _selectedMode = (E_Mode) GUILayout.Toolbar((int)_CurrentMode,modeLabels.ToArray(),GUILayout.ExpandHeight(true)); //可以扩展高度

    GUILayout.EndArea();

    Handles.EndGUI();

}

Enfin, vous obtiendrez l'effet suivant
insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/qq_43388137/article/details/122244360
conseillé
Classement