标签: unity-editor

编辑器窗口截图

我想从自定义编辑器窗口捕获屏幕截图,我将其用作我正在开发的游戏的关卡编辑器,但我不确定如何执行此操作。

我想要的是捕获 EditorWindow,而不是游戏视图或场景视图。

你能帮助我吗?谢谢!

编辑:我想在按下 GUILayout.Button 时通过代码截取屏幕截图:)

unity-game-engine unity3d-editor unity-editor

3
推荐指数
1
解决办法
7445
查看次数

如何在统一编辑器中显示以下KeyValuePair(以便可编辑)

简而言之:我有一个 KeyValuePair,我想在检查器中显示并使其可编辑。

我有以下自定义键值对的实现类。

using UnityEngine;
namespace Unit.Properties
{
    public class ClassificationPropertySuperClass : MonoBehaviour, IClassificationUnitProperty
    {
        [SerializeField]
        KeyValuePair<UnitClassifications, float> value;

        public KeyValuePair<UnitClassifications, float> GetComponentValue()
        {
            return value;
        }

        public void SetComponentValue(KeyValuePair<UnitClassifications, float> value)
        {
            this.value = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

仅供参考,这是我制作的自定义 KeyValuePair 类

[System.Serializable]
public class KeyValuePair<TKey, TValue>
{
    public KeyValuePair()
    {
    }

    public KeyValuePair(TKey key, TValue value)
    {
        Key = key;
        Value = value;
    }

    public TKey Key { get; set; }
    public TValue Value { get; set; }
} …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine unity-editor

3
推荐指数
1
解决办法
6267
查看次数

unity 条件字段自定义编辑器

我的目标:我有一个脚本

public class MyScript: MonoBehaviour
{
   public bool A;
   public bool B;
}
Run Code Online (Sandbox Code Playgroud)

仅当 A 为 TRUE 时,我才需要 B 可见

我对脚本进行了扩展,并在标题中添加了 UnityEditor

[CustomEditor(typeof(MyScript))]
public class MyEditor : Editor
{
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        MyScript tool = (MyScript) target;

        tool.A = GUILayout.Toggle(tool.A, "Flag");

        if(tool.A)
        {
            tool.B= EditorGUILayout.Toggle(tool.B, "Flag");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但一切都没有真正改变。我做错了什么?

unity-game-engine unity3d-editor unity-editor

3
推荐指数
1
解决办法
1万
查看次数

如何使用 bool 在 Unity 检查器中启用/禁用列表?

我有一个ScriptableObject名为的脚本Level,在关卡脚本中我有一个游戏对象列表和一个名为introduceNewEnemies.

我想要做的是:我想在 bool 变量打开时启用游戏对象列表,并在它关闭时使用 Unity 自定义检查器方法或属性隐藏/灰色(我们无法向其添加元素)它抽屉。做起来有那么难吗?

c# unity-game-engine unity-editor

3
推荐指数
2
解决办法
4719
查看次数

Unity - 在检查器中自定义绘制结构

我有一个自定义结构,代码如下:

[Serializable]
public struct HexPoint : IEquatable<HexPoint>
{
    public readonly int x;
    public readonly int y;
    public readonly int z;
    
    // Some custom methods for initializations and operators
}
Run Code Online (Sandbox Code Playgroud)

如果我将 x、y 和 z 变量设为非只读,它们就会在统一检查器中正常显示。但是,我有一些他们需要满足的规则(实际上是 x+y+z=0),所以我添加了 readonly 以防止人们弄乱它。

但是作为只读变量,它们不会显示(因为它们不能被修改)!:(

我想知道它们是否是我在统一检查器中显示它们的一种方式,类似于 PropertyDrawer。我知道我可以将我的结构切换到一个类,因为 PropertyDrawer 是为类保留的,但我想将它保留为一个结构。

那么,有没有办法显示值?并最终使用自定义初始值设定项修改它们?

非常感谢!

c# struct unity-game-engine unity3d-editor unity-editor

2
推荐指数
1
解决办法
2810
查看次数

自动将命名空间添加到 Unity C# 脚本

我熟悉为 Unity 游戏引擎更改脚本模板的能力。但是,它非常有限,只允许一个关键字:#SCRIPTNAME#

随着项目变得越来越复杂,命名空间变得至关重要。并且无法通过Create --> C# Script.

有谁知道任何解决方案?


PS 我知道您可以使用 Visual Studio 创建文件,根据位置自动获取命名空间。但是,它们包含不必要的部分,例如Assets.Scripts...

c# unity-game-engine unity-editor

2
推荐指数
1
解决办法
1176
查看次数

Unity 编辑器:是否可以创建易于编辑的快捷方式?

我正在尝试在 Unity 上创建自定义编辑器脚本,并且出于不同的原因我希望有很多快捷方式。有没有办法创建在编辑器中触发事件的快捷方式?创建一个自定义编辑器只是为了编辑第一个编辑器的快捷方式对我来说是不可能的,因为我没有那么多时间,但它确实会帮助我能够轻松地更改我自己的快捷方式。

截至目前,这是我的代码:

static void EditorGlobalKeyPress()
    {
        Event current = Event.current;
        if ((!current.alt && !current.control)|| current.type != EventType.KeyUp) return;
        switch (Event.current.keyCode)
        {
            case KeyCode.L:
                // Load stuff
                break;
            case KeyCode.U:
                // Unload stuff
                break;
            default:
                break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

虽然它工作得很好,但拥有可编辑的快捷方式会很棒。有谁知道是否可以以某种方式实现?

c# keyboard-shortcuts unity-game-engine unity-editor

2
推荐指数
1
解决办法
2595
查看次数

在 Unity 中的多选下拉菜单中显示 ScriptableObjects

我应该如何创建PropertyAttribute并在检查器的下拉菜单中PropertyDrawer显示s 以进行多重选择?ScriptableObject

unity-game-engine drop-down-menu dropdown unity-editor

0
推荐指数
1
解决办法
1625
查看次数

如何使用 C# 从字符串数组制作类似枚举的 Unity 检查器下拉菜单?

我正在制作一个 Unity C# 脚本,供其他人用作角色对话工具来写出多个游戏角色之间的对话。

我有一个DialogueElement类,然后我创建了一个DialogueElement对象列表。每个对象代表一行对话。

[System.Serializable] //needed to make ScriptableObject out of this class
public class DialogueElement
{
    public enum Characters {CharacterA, CharacterB};
    public Characters Character; //Which characters is saying the line of dialog
    public string DialogueText; //What the character is saying
}
Run Code Online (Sandbox Code Playgroud)
public class Dialogue : ScriptableObject
{
    public string[] CharactersList; //defined by the user in the Unity inspector
    public List<DialogueElement> DialogueItems; //each element represents a line of dialogue
}
Run Code Online (Sandbox Code Playgroud)

我希望用户能够仅通过与 Unity 检查器交互来使用对话框工具(因此无需编辑代码)。这种设置的问题是对话工具的用户无法为Characters枚举中的字符指定他们自己的自定义名称(例如 …

c# enums unity-game-engine unity-editor

0
推荐指数
1
解决办法
1万
查看次数

如何通过脚本添加排序层

我正在尝试通过脚本添加排序层。

我可以通过脚本添加排序层吗?如何?

c# unity-game-engine unity-editor

-1
推荐指数
1
解决办法
1041
查看次数