Search Issue Tracker

By Design

Votes

0

Found in

2018.3.0a1

2018.3.0b1

Issue ID

1080341

Regression

Yes

API updater replaces NavMeshBuilder with UnityEditor.AI.NavMeshBuilder without checking if the namespace is correct

AI Navigation

-

Repro steps:
1. Open attached project
2. Modify the manifest.json file in the Project Folder -> Packages to have no dependencies
3. Agree to update the API
4. Notice various errors in the Console
5. Open UpdateNavMeshAsyncTests.cs and observe line 48

Expected: Unity checks that the namespace is correct and doesn't update were unnecessary
Actual: NavMeshBuilder is changed to UnityEditor.AI.NavMeshBuilder

Reproducible with: 2018.3.0b2, 2019.1.0a1
Not reproducible with: 2018.2.8f1

  1. Resolution Note:

    The problem only happens because UnityEngine.AIModule.dll isn't included in the compilation of the project.
    This causes the following sequence of steps to take place:

    1. Compiler emits type not found errors
    2. Updater code detects those errors and try to check whether it is something related to it.
    3. Since those types exists in both *UnityEngine.AIModule.dll* and in *UnityEditor.dll* and the former is missing from the list of referenced assemblies and the later does have a configuration to move *UnityEditor.Type -> UnityEditor.AI.Type* the updater runs

    The real problem is the missing reference during compilation.

Add comment

Log in to post comment