【Unity C#_菜单Window开发系列_Inspector Component UnityEditor开发】

news2024/12/28 3:20:45

GUI系列操作

    • 1.枚举菜单实现
      • 文件1:Assets/MyScript/Test1.cs
        • 代码如下:
      • 文件2:Assets/MyScript/Editor/Test1Editor.cs
        • 代码如下:
      • 测试一下
        • 新建一个场景,新建一个Empty 节点,用来测试枚举组件
        • 将文件1:Assets/MyScript/Test1.cs拖到Game Object的Inspector面板上。
        • 实现了一个简单的枚举菜单:
    • 2.Window窗口菜单实现
      • 窗口菜单实现1——显示窗口:
        • 文件:Assets/MyScript/Test2Window.cs
          • 代码如下:
        • 测试一下
          • 保存文件后,在窗口左边有"测试2/ShowWindow"菜单选项
            • 打开"测试2/ShowWindow"窗口,如下:
      • 窗口菜单实现2——弹出类型:
        • 文件:Assets/MyScript/Test3Window.cs
          • 代码如下:
        • 测试一下
          • 打开"测试2/Test3Window"窗口,如下:
      • 窗口菜单实现3——浮动工具窗口:
        • 文件:Assets/MyScript/Test4Window.cs
          • 代码如下:
          • 测试一下
            • 打开"测试2/Test4Window"窗口,如下:
    • 3.Window窗口文本与颜色
      • 文件:Assets/MyScript/Test6Window.cs
        • 代码如下:
        • 测试一下
          • 打开"测试2/Test6Window"窗口,如下:
          • 窗口文本与颜色关键字:TextField、TextArea、PasswordField和ColorField。
    • 4.Window窗口标签字段
      • 文件:Assets/MyScript/Test7Window.cs
        • 代码如下:
        • 测试一下
          • 打开"测试2/Test7Window"窗口,如下:
          • 窗口标签字段关键字:LabelField("文本输入框");和Space(20);
    • 5.Window窗口滑动条
      • 文件:Assets/MyScript/Test8Window.cs
        • 代码如下:
        • 测试一下
          • 打开"测试2/Test8Window"窗口,如下:
          • 窗口标签字段关键字:Slider、IntSlider和EditorGUILayout.MinMaxSlider(ref this.mMinFloat, ref this.mMaxFloat, 0, 100);
    • 6.Window三维四维数组
      • 文件:Assets/MyScript/Test9Window.cs
        • 代码如下:
        • 测试一下
          • 打开"测试2/Test9Window"窗口,如下:
          • 窗口标签字段关键字:Vector4Field、RectField和BoundsField
    • 7.Window标签/层和对象选择
      • 文件:Assets/MyScript/Test10Window.cs
        • 代码如下:
        • 测试一下
          • 打开"测试2/Test10Window"窗口,如下:
    • 8.Window实现Bool和折叠框
      • 文件:Assets/MyScript/Test11Window.cs
        • 代码如下:
        • 测试一下
          • 打开"测试2/Test11Window"窗口,如下:
          • Bool和折叠框实现结构:
    • 9.Window实现滑动条和禁用置灰选项
      • 文件:Assets/MyScript/Test12Window.cs
        • 代码如下:
        • 测试一下
          • 打开"测试2/Test12Window"窗口,如下:
          • 窗口右侧滑动条实现结构
          • 是否禁用置灰实现结构


1.枚举菜单实现

文件1:Assets/MyScript/Test1.cs

代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test1 : MonoBehaviour
{
    public Enum4 mEnum;
    public int mInt;
    public float mFloat;
    public string mStr;
    public Color mColor;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

public enum Enum4
{
    None,
    IntVal,
    FloatVal,
    StrVal,
    ColorVal
}

文件2:Assets/MyScript/Editor/Test1Editor.cs

代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Test1),true)]
public class Test4Editor : Editor
{
    public SerializedObject mObj;
    public SerializedProperty mEnum;
    public SerializedProperty mInt;
    public SerializedProperty mFloat;
    public SerializedProperty mStr;
    public SerializedProperty mColor;
    public void OnEnable()
    {
        this.mObj = new SerializedObject(target);
        this.mEnum = this.mObj.FindProperty("mEnum");
        this.mInt = this.mObj.FindProperty("mInt");
        this.mFloat = this.mObj.FindProperty("mFloat");
        this.mStr = this.mObj.FindProperty("mStr");
        this.mColor = this.mObj.FindProperty("mColor");
    }
    public override void OnInspectorGUI()
    {
        this.mObj.Update();
        EditorGUILayout.PropertyField(this.mEnum);
        switch (this.mEnum.enumValueIndex)
        {
            case 1:
                EditorGUILayout.PropertyField(this.mInt);
                break;
            case 2:
                EditorGUILayout.PropertyField(this.mFloat);
                break;
            case 3:
                EditorGUILayout.PropertyField(this.mStr);
                break;
            case 4:
                EditorGUILayout.PropertyField(this.mColor);
                break;
        }
        this.mObj.ApplyModifiedProperties();
    }
}

测试一下

新建一个场景,新建一个Empty 节点,用来测试枚举组件

在这里插入图片描述

将文件1:Assets/MyScript/Test1.cs拖到Game Object的Inspector面板上。

在这里插入图片描述

实现了一个简单的枚举菜单:

在这里插入图片描述


2.Window窗口菜单实现

窗口菜单实现1——显示窗口:

文件:Assets/MyScript/Test2Window.cs
代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Test2Window : EditorWindow
{
    [MenuItem("测试2/ShowWindow")]
    public static void ShowWindow()
    {
        Test2Window.CreateInstance<Test2Window>().Show();
    }
}

测试一下
保存文件后,在窗口左边有"测试2/ShowWindow"菜单选项

如下:

在这里插入图片描述

打开"测试2/ShowWindow"窗口,如下:

在这里插入图片描述

窗口菜单实现2——弹出类型:

文件:Assets/MyScript/Test3Window.cs
代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Test3Window : EditorWindow
{
    [MenuItem("测试2/Test3Window")]
    public static void ShowWindow()
    {
        Test3Window.CreateInstance<Test3Window>().ShowUtility();
    }
}

测试一下
打开"测试2/Test3Window"窗口,如下:

在这里插入图片描述

窗口菜单实现3——浮动工具窗口:

文件:Assets/MyScript/Test4Window.cs
代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Test4Window : EditorWindow
{
    [MenuItem("测试2/Test4Window")]
    public static void ShowWindow()
    {
        Test4Window.CreateInstance<Test4Window>().ShowPopup();
    }

    public void OnGUI()
    {
        if(GUILayout.Button("关闭"))
        {
            this.Close();
        }
    }
}

测试一下
打开"测试2/Test4Window"窗口,如下:

在这里插入图片描述


3.Window窗口文本与颜色

文件:Assets/MyScript/Test6Window.cs

代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Test6Window : EditorWindow
{
    [MenuItem("测试2/Test6Window")]
    public static void ShowWindow()
    {
        EditorWindow.GetWindow<Test6Window>().Show();
    }
    public string mText = "默认文本";
    public Color mColor = Color.white;
    public void OnGUI()
    {
        if (GUILayout.Button("关闭"))
        {
            this.Close();
        }
        this.mText = EditorGUILayout.TextField(this.mText);
        this.mText = EditorGUILayout.TextArea(this.mText);
        this.mText = EditorGUILayout.PasswordField(this.mText);

        this.mColor = EditorGUILayout.ColorField(this.mColor);
//EditorGUILayout 后面的关键字:TextField、TextArea、PasswordField和ColorField。

    }
}

测试一下
打开"测试2/Test6Window"窗口,如下:

在这里插入图片描述

窗口文本与颜色关键字:TextField、TextArea、PasswordField和ColorField。

4.Window窗口标签字段

文件:Assets/MyScript/Test7Window.cs

代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Test7Window : EditorWindow
{
    [MenuItem("测试2/Test7Window")]
    public static void ShowWindow()
    {
        EditorWindow.GetWindow<Test7Window>().Show();
    }
    public string mText = "默认文本";
    public Color mColor = Color.white;
    public void OnGUI()
    {
        EditorGUILayout.LabelField("文本输入框");
        this.mText = EditorGUILayout.TextField(this.mText);
        EditorGUILayout.Space(20);
        this.mText = EditorGUILayout.TextArea(this.mText);
        EditorGUILayout.SelectableLabel("密码输入框");
        this.mText = EditorGUILayout.PasswordField(this.mText);

        this.mColor = EditorGUILayout.ColorField(this.mColor);
    }
}

测试一下
打开"测试2/Test7Window"窗口,如下:

在这里插入图片描述

窗口标签字段关键字:LabelField(“文本输入框”);和Space(20);

5.Window窗口滑动条

文件:Assets/MyScript/Test8Window.cs

代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Test8Window : EditorWindow
{
    [MenuItem("测试2/Test8Window")]
    public static void ShowWindow()
    {
        EditorWindow.GetWindow<Test8Window>().Show();
    }
    public int mInt;
    public float mFloat;

    public float mMinFloat;
    public float mMaxFloat;
    public void OnGUI()
    {
        EditorGUILayout.LabelField("浮点值滑动条0-100");
        this.mFloat = EditorGUILayout.Slider(this.mFloat, 0, 100);
        EditorGUILayout.Space(20);
        EditorGUILayout.LabelField("整数值滑动条0-100");
        this.mInt = EditorGUILayout.IntSlider(this.mInt, 0, 100);

        EditorGUILayout.Space(30);
        EditorGUILayout.LabelField("最小值和最大值滑动条");
        this.mMinFloat = EditorGUILayout.Slider(this.mMinFloat, 0, 100);
        this.mMaxFloat = EditorGUILayout.Slider(this.mMaxFloat, 0, 100);
        EditorGUILayout.MinMaxSlider(ref this.mMinFloat, ref this.mMaxFloat, 0, 100);
    }
}

测试一下
打开"测试2/Test8Window"窗口,如下:

在这里插入图片描述

窗口标签字段关键字:Slider、IntSlider和EditorGUILayout.MinMaxSlider(ref this.mMinFloat, ref this.mMaxFloat, 0, 100);

6.Window三维四维数组

文件:Assets/MyScript/Test9Window.cs

代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Test9Window : EditorWindow
{
    [MenuItem("测试2/Test9Window")]
    public static void ShowWindow()
    {
        EditorWindow.GetWindow<Test9Window>().Show();
    }
    public Vector2 mPos2;
    public Vector3 mPos3;
    public Vector4 mPos4;
    public Rect mRect;
    public Bounds mBounds;


    public void OnGUI()
    {
        this.mPos2 = EditorGUILayout.Vector2Field("二维数值",this.mPos2);
        this.mPos3 = EditorGUILayout.Vector3Field("三维数值",this.mPos3);
        this.mPos4 = EditorGUILayout.Vector4Field("四维数值",this.mPos4);
        EditorGUILayout.Space(20);
        EditorGUILayout.LabelField("矩阵");
        this.mRect = EditorGUILayout.RectField(this.mRect);
        EditorGUILayout.Space(20);
        EditorGUILayout.LabelField("间距");
        this.mBounds = EditorGUILayout.BoundsField(this.mBounds);
    }
}
测试一下
打开"测试2/Test9Window"窗口,如下:

在这里插入图片描述

窗口标签字段关键字:Vector4Field、RectField和BoundsField

7.Window标签/层和对象选择

文件:Assets/MyScript/Test10Window.cs

代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Test10Window : EditorWindow
{
    [MenuItem("测试2/Test10Window")]
    public static void ShowWindow()
    {
        EditorWindow.GetWindow<Test10Window>().Show();
    }
    public string mStr;
    public int mInt;
    public Object mObj1;
    public Object mObj2;
    public Object mObj3;
    public Object mObj4;

    public void OnGUI()
    {
        EditorGUILayout.LabelField("Tag");
        this.mStr = EditorGUILayout.TagField(this.mStr);
        EditorGUILayout.Space(170);
        EditorGUILayout.LabelField("Layer");
        this.mInt = EditorGUILayout.LayerField(this.mInt);
        EditorGUILayout.Space(150);
        EditorGUILayout.LabelField("Camera");
        this.mObj1 = EditorGUILayout.ObjectField(this.mObj1, typeof(Camera));
        EditorGUILayout.Space();
        EditorGUILayout.LabelField("Transform");
        this.mObj2 = EditorGUILayout.ObjectField(this.mObj2, typeof(Transform));
        EditorGUILayout.Space();
        EditorGUILayout.LabelField("Texture");
        this.mObj3 = EditorGUILayout.ObjectField(this.mObj3, typeof(Texture));
        EditorGUILayout.Space();
        EditorGUILayout.LabelField("Object_场景和资源的都可选");
        this.mObj4 = EditorGUILayout.ObjectField(this.mObj4, typeof(Object));
    }
}

测试一下
打开"测试2/Test10Window"窗口,如下:

在这里插入图片描述


8.Window实现Bool和折叠框

文件:Assets/MyScript/Test11Window.cs

代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Test11Window : EditorWindow
{
    [MenuItem("测试2/Test11Window")]
    public static void ShowWindow()
    {
        EditorWindow.GetWindow<Test11Window>().Show();
    }
    public bool mBool1;
    public bool mBool2;
    public string mStr;
    public int mInt;
    public Object mObj1;
    public Object mObj2;
    public Object mObj3;
    public Object mObj4;

    public void OnGUI()
    {
        this.mBool1 = EditorGUILayout.Toggle("是否开启", this.mBool1);
        if (this.mBool1)
        {
            EditorGUILayout.LabelField("Tag");
            this.mStr = EditorGUILayout.TagField(this.mStr);
            EditorGUILayout.Space(20);
            EditorGUILayout.LabelField("Layer");
            this.mInt = EditorGUILayout.LayerField(this.mInt);
            EditorGUILayout.Space(20);
            EditorGUILayout.LabelField("Camera");
            this.mObj1 = EditorGUILayout.ObjectField(this.mObj1, typeof(Camera));
        }

        this.mBool2 = EditorGUILayout.Foldout(this.mBool2 , "是否折叠");
        if (this.mBool2)
        {
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Transform");
            this.mObj2 = EditorGUILayout.ObjectField(this.mObj2, typeof(Transform));
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Texture");
            this.mObj3 = EditorGUILayout.ObjectField(this.mObj3, typeof(Texture));
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Object_场景和资源的都可选");
            this.mObj4 = EditorGUILayout.ObjectField(this.mObj4, typeof(Object));
        }
    }
}

测试一下
打开"测试2/Test11Window"窗口,如下:

请添加图片描述

Bool和折叠框实现结构:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Test11Window : EditorWindow
{
    [MenuItem("测试2/Test11Window")]
    public static void ShowWindow()
    {
        EditorWindow.GetWindow<Test11Window>().Show();
    }
    public bool mBool1;
    public bool mBool2;
...
    public void OnGUI()
    {
        this.mBool1 = EditorGUILayout.Toggle("是否开启", this.mBool1);
        if (this.mBool1)
        {
...
        }

        this.mBool2 = EditorGUILayout.Foldout(this.mBool2 , "是否折叠");
        if (this.mBool2)
        {
...
        }
    }
}

9.Window实现滑动条和禁用置灰选项

文件:Assets/MyScript/Test12Window.cs

代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Test12Window : EditorWindow
{
    [MenuItem("测试2/Test12Window")]
    public static void ShowWindow()
    {
        EditorWindow.GetWindow<Test12Window>().Show();
    }
    public bool mBool1;
    public bool mBool2;
    public bool mBool3;

    public string mStr;
    public int mInt;
    public Object mObj1;
    public Object mObj2;
    public Object mObj3;
    public Object mObj4;

public Vector2 mPos;
    public void OnGUI()
    {
        this.mPos = EditorGUILayout.BeginScrollView(this.mPos);
        this.mBool1 = EditorGUILayout.Toggle("是否开启", this.mBool1);
        if (this.mBool1)
        {
            EditorGUILayout.LabelField("Tag");
            this.mStr = EditorGUILayout.TagField(this.mStr);
            EditorGUILayout.Space(20);
            EditorGUILayout.LabelField("Layer");
            this.mInt = EditorGUILayout.LayerField(this.mInt);
            EditorGUILayout.Space(20);
            EditorGUILayout.LabelField("Camera");
            this.mObj1 = EditorGUILayout.ObjectField(this.mObj1, typeof(Camera));
        }

        this.mBool2 = EditorGUILayout.Foldout(this.mBool2, "是否折叠");
        if (this.mBool2)
        {
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Transform");
            this.mObj2 = EditorGUILayout.ObjectField(this.mObj2, typeof(Transform));
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Texture");
            this.mObj3 = EditorGUILayout.ObjectField(this.mObj3, typeof(Texture));
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("Object_场景和资源的都可选");
            this.mObj4 = EditorGUILayout.ObjectField(this.mObj4, typeof(Object));
        }

        this.mBool3 = EditorGUILayout.BeginToggleGroup("是否禁用置灰", this.mBool3);
        EditorGUILayout.LabelField("Tag");
        this.mStr = EditorGUILayout.TagField(this.mStr);
        EditorGUILayout.LabelField("Layer");
        this.mInt = EditorGUILayout.LayerField(this.mInt);
        EditorGUILayout.LabelField("Camera");
        this.mObj1 = EditorGUILayout.ObjectField(this.mObj1, typeof(Camera));
        EditorGUILayout.EndToggleGroup();
        EditorGUILayout.EndScrollView();
    }
}

测试一下
打开"测试2/Test12Window"窗口,如下:

请添加图片描述

窗口右侧滑动条实现结构
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Test12Window : EditorWindow
{
    [MenuItem("测试2/Test12Window")]
    public static void ShowWindow()
    {
        EditorWindow.GetWindow<Test12Window>().Show();
    }
    public Object mObj4;

public Vector2 mPos;
    public void OnGUI()
    {
        this.mPos = EditorGUILayout.BeginScrollView(this.mPos);//窗口右侧滑动条开始
...//中间包含的菜单
        EditorGUILayout.EndScrollView();//窗口右侧滑动条结束

    }
}

是否禁用置灰实现结构
        this.mBool3 = EditorGUILayout.BeginToggleGroup("是否禁用置灰", this.mBool3);
        ...
        EditorGUILayout.EndToggleGroup();
        ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1067440.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

百面机器学习书刊纠错

百面机器学习书刊纠错 P243 LSTM内部结构图 2023-10-7 输入门的输出 和 candidate的输出 进行按元素乘积之后 要和 遗忘门*上一层的cell state之积进行相加。

格雷希尔针对汽车空调高压管异型管口快速密封的G72R高压连接器

汽车散热是汽车热管理的重要部件&#xff0c;不管是燃油车还是新能源车&#xff0c;散热都是必不可少的零部件&#xff0c;从散热水箱、到车用空调冷凝器、蒸发器、空调高压管件等&#xff0c;由于位置和固定方式等影响&#xff0c;虽然管件直径比较标准&#xff0c;但接口部分…

Python3操作文件系列(一):判断文件|目录是否存在三种方式

Python3操作文件系列(一):判断文件|目录是否存在三种方式 Python3操作文件系列(二):文件数据读写|二进制数据读写 Python3数据文件读取与写入 一: 文件操作认知: 提升认知&#xff1a;Python判断文件是否存在的三种方法1.使用os模块2.判断文件是否可做读写操作3.使用Try语句…

二、Excel VBA 简单使用

Excel VBA 从入门到出门一、Excel VBA 是个啥&#xff1f;二、Excel VBA 简单使用 &#x1f44b;Excel VBA 简单使用 ⚽️1. 如何在Excel中手动编写VBA代码⚽️2. 如何在 Excel 中运行 VBA 代码⚽️3. 如何在Excel中记录VBA代码⚽️4. 如何在Excel中编辑录制的VBA代码⚽️5. 如…

学习笔记|ADC|NTC原理|测温程序|STC32G单片机视频开发教程(冲哥)|第十九集:ADC应用之NTC

文章目录 1.NTC的原理开发板上的NTC 2.NTC的测温程序编写3.实战小练总结课后练习 1.NTC的原理 NTC&#xff08;Negative Temperature Coefficient&#xff09;是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料。该材料是利用锰、铜、硅、钴、铁、镍、锌…

经典算法-----01背包问题(动态规划)

目录 前言 01背包问题 问题描述 ​编辑 动态规划 基本概念 怎么理解动态规划? 解决01背包问题 代码实现 前言 今天我们学习一种新的算法---动态规划&#xff0c;这种算法思想是属于枚举的一种&#xff0c;下面我就通过01背包问题来说明这种算法的解决思路。 01背包问…

GEE17: 基于Theil-Sen Median斜率估计和Mann-Kendall趋势分析方法分析四川省2022年NDVI变化情况

Theil-Sen Median Mann-Kendall 1. Theil-Sen Median Mann-Kendall 原理1.1 Theil-Sen Median1.2 Mann-Kendall 2. GEE code 1. Theil-Sen Median Mann-Kendall 原理 1.1 Theil-Sen Median Theil-Sen Median方法又称为Sen斜率估计&#xff0c;是一种稳健的非参数统计的趋势…

LeakyReLU激活函数

nn.LeakyReLU 是PyTorch中的Leaky Rectified Linear Unit&#xff08;ReLU&#xff09;激活函数的实现。Leaky ReLU是一种修正线性单元&#xff0c;它在非负数部分保持线性&#xff0c;而在负数部分引入一个小的斜率&#xff08;通常是一个小的正数&#xff09;&#xff0c;以防…

JVM(八股文)

目录 一、JVM简介 二、JVM中的内存区域划分 三、JVM加载 1.类加载 1.1 加载 1.2 验证 1.3 准备 1.4 解析 1.5 初始 1.6 总结 2.双亲委派模型 四、JVM 垃圾回收&#xff08;GC&#xff09; 1.确认垃圾 1.1 引用计数 1.2 可达性分析&#xff08;Java 采用的方案&a…

BI系统有哪些?新手怎么选?

从本土化服务以及契合中国企业使用习惯等方面来看&#xff0c;建议采用国产BI系统。国内比较知名的BI工具有很多&#xff0c;比如亿信华辰BI(亿信ABI)、思迈特BI(Smartbi)、奥威BI(OurwayBISpeedBI)、帆软BI(FineBI)等。 这些BI系统在操作上都比较简单&#xff0c;比如像奥威B…

Vue中...(扩展运算符)的作用

对数组和对象而言&#xff0c;就是将运算符后面的变量里东西每一项拆下来。 &#xff08;一&#xff09;操作数组 // 1.把数组中的元素孤立起来 let iArray [1, 2, 3]; console.log(...iArray); // 打印结果 1 2 3// 2.在数组中添加元素 let iArray [1, 2, 3]; console.log…

拉取公司前端项目本地运行结果Bug频出,看我是如何一步一步成功解决的

文章目录 前端项目运行Bug记录问题背景npm install 报错问题1&#xff1a;npm install 报错ERESOLVE could not resolve问题2&#xff1a;npm install 报错 Cannot read properties of null问题3&#xff1a;node安装了npm没安装问题4&#xff1a;npm和node不兼容问题5&#xf…

新文件覆盖旧文件还能复原吗,3个方法快速恢复覆盖文件!

iPhone在解压压缩文件时&#xff0c;不小心将同名文件进行了覆盖&#xff0c;怎么撤回&#xff1f; 在使用U盘转移文档时&#xff0c;意外将同名文档进行了替换&#xff0c;怎么恢复&#xff1f; 当误将重名文件进行了替换&#xff0c;如何找回这些被覆盖的旧文件&#xff1f;…

Vue中的数据绑定

一、v-bind单向数据绑定 单向数据绑定中&#xff0c;数据只能由data流向页面。 v-bind:属性名"data变量" 或简写为 :属性名"data变量" 我们修改data中的iptvalue值&#xff0c;页面input框中的value值改变。 而我们修改input框中的value值&#xff0…

【C++初阶(二)C——C++过渡必看】

文章目录 前言一、C关键字&#x1f34e;二、命名空间&#x1f345;1.命名空间的定义&#x1f352;2.命名空间使用&#x1f353; 三、C输入&输出&#x1f351;四、缺省参数&#x1fad1;1. 缺省参数概念&#x1f349;2. 缺省参数分类&#x1f95d; 五、函数重载&#x1f965…

【Vue面试题五】说说你对Vue生命周期的理解?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;请描述下你对vue生命周期…

八、互联网技术——物联网

文章目录 一、智慧物联案例分析二、M2M技术三、数据保护综合案例分析一、智慧物联案例分析 智能物流是一种典型的物联网应用。一个物流仓储管理系统架构如下图所示: [问题1] 图中的三层功能:仓库物品识别、网络接入、物流管理中心,分别可对应到物联网基本架构中的哪一层? …

金九银十,刷完这个笔记,17K不能再少了....

大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;得准备面试了&#xff0c;又不知道从何下手&#xff01;为了帮大家节约时间&#xff0c;特意准备了一份面试相关的资料&#xff0c;内容非常的全面&#xff0c;真的可以好好补一补&#xff0c;希望大家在都能拿到理想…

MybatisPlus01

MybatisPlus01 1.MybatisPlus初体验 1.1首先要引入MybatisPlus的依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version></dependency>1.2定义Mapp…

【论文极速读】EMT——评估多模态LLM中的灾难性遗忘问题

【论文极速读】EMT——评估多模态LLM中的灾难性遗忘问题 FesianXu 20231001 at Baidu Search Team 前言 论文[1]报告了多模态LLM中遇到的灾难性遗忘问题&#xff0c;并且提出了一种评估其程度的方法EMT&#xff0c;本文简要介绍&#xff0c;希望对读者有所帮助。如有谬误请见谅…