«Новый» предупреждение оператора журнала при создании GameObject, как обойти это? - PullRequest
0 голосов
/ 28 апреля 2019

Мне интересно, что я делаю, что вызывает это известное предупреждение:

You are trying to create a MonoBehaviour using the 'new' keyword. This is not allowed. MonoBehaviours can only be added using AddComponent(). Alternatively, your script can inherit from ScriptableObject or no base class at all.

Я знаю, что могу просто использовать Addcomponent<T>, чтобы избежать этого logwarning. Я также понимаю, что единство не позволяет создавать экземпляры чего-либо, унаследованного от монобиха ( ref ).

Однако следует сказать, что сейчас все тесты, обеспечивающие это logwarning, работают нормально, я просто хочу избавиться от предупреждения.

Это пример теста, который выдает эту ошибку.

[Test]
public void HandleHoverSetsCurrentInteractableOnInteractor()
{
    /// Arrange
    GameObject actor;
    actor = new GameObject();
    actor.AddComponent<XRController>();

    GameObject actable;
    actable = new GameObject();
    Handle h = actable.AddComponent<Handle>();
    h.Hover(actor.GetComponent<IActor>());

    /// Assert
    Assert.IsNotNull(actor.GetComponent<IActor>().currentInteractable);
}

Теперь, как уже упоминалось ранее, это работает именно так, как я и ожидал, и это создание GameObject и тестирование функциональности Hover. Это просто дает мне то, что logwarning каждый раз, когда я делаю это. Поэтому мне интересно, есть ли правильный способ сделать это? желательно без ссоры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...