Maze / Library /PackageCache /com.unity.test-framework@1.1.33 /UnityEditor.TestRunner /TestRunner /EditModePCHelper.cs
| using System.Collections; | |
| using System.Reflection; | |
| using UnityEngine.TestTools; | |
| namespace UnityEditor.TestTools.TestRunner | |
| { | |
| internal class EditModePcHelper : TestCommandPcHelper | |
| { | |
| public override void SetEnumeratorPC(IEnumerator enumerator, int pc) | |
| { | |
| GetPCFieldInfo(enumerator).SetValue(enumerator, pc); | |
| } | |
| public override int GetEnumeratorPC(IEnumerator enumerator) | |
| { | |
| if (enumerator == null) | |
| { | |
| return 0; | |
| } | |
| return (int)GetPCFieldInfo(enumerator).GetValue(enumerator); | |
| } | |
| private FieldInfo GetPCFieldInfo(IEnumerator enumerator) | |
| { | |
| var field = enumerator.GetType().GetField("$PC", BindingFlags.NonPublic | BindingFlags.Instance); | |
| if (field == null) // Roslyn | |
| field = enumerator.GetType().GetField("<>1__state", BindingFlags.NonPublic | BindingFlags.Instance); | |
| return field; | |
| } | |
| } | |
| } | |