【问题标题】:How to make transparent UI visible in Unity Editor?如何使透明 UI 在 Unity 编辑器中可见?
【发布时间】:2021-06-20 16:09:35
【问题描述】:

背景

在 Unity 2020LTS 中,我想制作一个 UI 场景。
但在游戏面板中,我发现,虽然一开始就设置了动画(无条件),但游戏会先显示我在编辑器面板中看到的内容一段时间,然后播放动画。
StateMachine 是 Entry -> Target(Default)
我不想向播放器显示我在编辑器中看到的内容,而只想显示动画中的第一帧。 我猜这是因为加载级别需要一些时间(几乎 0.5 秒)。

问题

所以我尝试了另一种方法,使所有对象的初始状态与动画的第一帧相同。
这种方式工作,似乎就像它在第一帧冻结 0.5 秒。但是,我无法明显地编辑这些对象(因为它们在第一帧中都是透明的)。
我尝试过 Gizmo,但它们效果不佳。此外,Gizmos 让我不得不在 C# 脚本中为每个对象创建大量类,这些类只是动画的组成部分,没有脚本。
有没有更好的方法来仅在编辑器场景中显示透明 (UI) 对象?

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    假设您有一些 Game Manager 脚本,您可以添加一个 GameObject,为其分配 UI 元素,然后在脚本的 Start() 函数中使其处于非活动状态,如下所示:

    public class GameManager : MonoBehaviour
    {
        public GameObject menu;
        void Start()
        {
            menu.SetActive(false);
            //other statements
        }
    }
    

    【讨论】:

      【解决方案2】:

      我不太确定您要求的是什么,但如果您想编辑不可见的 UI 元素,您只需使用层次结构选择它们并进行编辑即可。我已将图像与此示例相关联。 Example scene with invisible panel

      Image img;
      
      // Start is called before the first frame update
      void Start()
      {
          img = GetComponent<Image>();
          img.color = new Color32(0, 0, 0, 0);
      }
      

      上面的代码将在场景启动时将面板透明度设置为零,请确保使用 using unity.UI 命名空间来访问图像组件。

      【讨论】:

      • 感谢您的回答,但我需要的是,像 Gizmos Image 一样,在编辑器中可见(alpha:255),但在游戏中不可见(alpha:0)的对象...
      • 抱歉回复晚了我已经更新了我的答案并添加了一个脚本,您可以使用该脚本在场景开始时将对象的 alpha 设置为零,您可以将其设置为任何颜色或透明度编辑,希望这有帮助。谢谢。
      猜你喜欢
      • 2022-01-24
      • 2018-01-14
      • 2013-10-31
      • 2013-05-31
      • 1970-01-01
      • 1970-01-01
      • 2016-09-14
      • 2020-03-02
      • 2016-07-14
      相关资源
      最近更新 更多