Страница 1 из 1

Как сделать UnitTest для Physics.Raycast

СообщениеДобавлено: 18 ноя 2019, 21:31
travnik
Привет,

Пытаюсь написать тест для проверки класса поиска объектов с помощью Physics.Raycast
Код класса который пытаюсь проверить:
Синтаксис:
Используется csharp
Ray ray = _camera.ScreenPointToRay(position);
            RaycastHit hit;
            Physics.Raycast(ray, out hit);
            return hit;


Код тестового метода:
Синтаксис:
Используется csharp
_scene = EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects);
var position = new Vector3();
        var gameObject = new GameObject();
        gameObject.transform.position = position;
        var result = objectSelector.Select(position);
        Assert.NotNull(result);

По идеи нужно как то объект добавить в сцену, но вот никак не могу разобраться чтобы тест сработал. Буду очень признателен если дадите направление в какую сторону копать

Re: Как сделать UnitTest для Physics.Raycast

СообщениеДобавлено: 19 ноя 2019, 12:33
travnik
Может кому пригодится, решил так вопрос
Синтаксис:
Используется csharp
[Test]
    public void Select_FoundObject()
    {
        var gameObject = new GameObject("test").AddComponent<BoxCollider>();

        var camera = Object.FindObjectOfType<Camera>();
        var worldToScreenPoint = camera.WorldToScreenPoint(gameObject.transform.position);

        var objectSelector = Container.Instantiate<Raycast2DSelector>();

        var result = objectSelector.Select(worldToScreenPoint);
        Assert.NotNull(result);
    }