在 Unity 2017 中,我通过创建自己的 UI 行为来绘制矢量图形,这些行为从UnityEngine.UI.Graphic. 但是我的代码无关紧要,因为您也可以使用文档中的SimpleImage 示例来观察这个问题。问题是这些从 Graphic 派生的自定义 UI 行为无法被Mask 组件屏蔽,即使每个本机 UI 元素都可以。这很奇怪,因为根据Graphic.OnPopulateMesh文档Text,Image、 和RawImage都使用相同的方法。
重现:
这对我来说是个问题,因为我需要在滚动视图中使用自定义图形。我该怎么做才能使我的图形与 Unity 的图形一样可屏蔽?
我正在创建一个游戏来了解Unity观看教程(这个),我的播放器有两个组件:PlayerHealth和PlayerAttack.两者都运行良好,但问题是当我尝试在第二个组件的OnGUI(PlayerAttack)中做某事时,从不调用PlayerAttack中的OnGUI.
是因为PlayerAttack被添加到PlayerHealth下面?按照下面的代码进行一些打印.

PlayerHealth.cs
using UnityEngine;
using System.Collections;
public class PlayerHealth : MonoBehaviour {
public int maxHealth = 100;
public int curHealth = 100;
public float healthBarLenght;
// Use this for initialization
void Start () {
healthBarLenght = Screen.width / 3;
}
// Update is called once per frame
void Update () {
AddjustCurrentHealth(0);
}
void OnGUI(){
GUI.Box(new Rect(10, 10, healthBarLenght, 20), curHealth + "/" + maxHealth);
}
public void AddjustCurrentHealth(int adj){
curHealth += adj;
curHealth = Mathf.Min(Mathf.Max(curHealth, 0), …Run Code Online (Sandbox Code Playgroud) 我使用的是 Unity 5.4.2f2 Personal,并且我编写了一个类似于以下内容的 C# 脚本:
using UnityEngine;
using System;
public class Outer : MonoBehaviour {
// Some public outer fields
public class Inner : MonoBehaviour {
// Some public inner fields
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够将Outer和附加Inner到场景中的游戏对象。不幸的是,Inner即使我添加了它,它也不会在 Unity Inspector 中显示为可用脚本[Serializable]。我知道很多人可能会说,如果我试图使嵌套类对外界可见,我的设置有问题,但为了这个问题,我只想知道这是否可以做到。即,有什么方法可以使嵌套类用作 Unity 组件吗?
我是团结的新手,并且在架构方面遇到了一些麻烦.
假设我有一个名为'component A'的C#脚本组件.我希望组件A有一个包含"组件B"类型的100个其他组件的数组.如何使用特定值以编程方式构造组件B?
请注意,'组件B'派生自'MonoBehaviour',因为它需要能够调用'StartCoroutine'
我知道在团结中你不像通常在OO那样使用构造函数.