@@ -40,6 +40,8 @@ public class ModelOverrider : MonoBehaviour
40
40
41
41
string m_BehaviorNameOverrideDirectory ;
42
42
43
+ private string m_OriginalBehaviorName ;
44
+
43
45
private List < string > m_OverrideExtensions = new List < string > ( ) ;
44
46
45
47
// Cached loaded NNModels, with the behavior name as the key.
@@ -85,6 +87,23 @@ public bool HasOverrides
85
87
}
86
88
}
87
89
90
+ /// <summary>
91
+ /// The original behavior name of the agent. The actual behavior name will change when it is overridden.
92
+ /// </summary>
93
+ public string OriginalBehaviorName
94
+ {
95
+ get
96
+ {
97
+ if ( string . IsNullOrEmpty ( m_OriginalBehaviorName ) )
98
+ {
99
+ var bp = m_Agent . GetComponent < BehaviorParameters > ( ) ;
100
+ m_OriginalBehaviorName = bp . BehaviorName ;
101
+ }
102
+
103
+ return m_OriginalBehaviorName ;
104
+ }
105
+ }
106
+
88
107
public static string GetOverrideBehaviorName ( string originalBehaviorName )
89
108
{
90
109
return $ "Override_{ originalBehaviorName } ";
@@ -306,13 +325,11 @@ void OverrideModel()
306
325
string overrideError = null ;
307
326
308
327
m_Agent . LazyInitialize ( ) ;
309
- var bp = m_Agent . GetComponent < BehaviorParameters > ( ) ;
310
- var behaviorName = bp . BehaviorName ;
311
328
312
329
NNModel nnModel = null ;
313
330
try
314
331
{
315
- nnModel = GetModelForBehaviorName ( behaviorName ) ;
332
+ nnModel = GetModelForBehaviorName ( OriginalBehaviorName ) ;
316
333
}
317
334
catch ( Exception e )
318
335
{
@@ -324,18 +341,18 @@ void OverrideModel()
324
341
if ( string . IsNullOrEmpty ( overrideError ) )
325
342
{
326
343
overrideError =
327
- $ "Didn't find a model for behaviorName { behaviorName } . Make " +
344
+ $ "Didn't find a model for behaviorName { OriginalBehaviorName } . Make " +
328
345
"sure the behaviorName is set correctly in the commandline " +
329
346
"and that the model file exists" ;
330
347
}
331
348
}
332
349
else
333
350
{
334
351
var modelName = nnModel != null ? nnModel . name : "<null>" ;
335
- Debug . Log ( $ "Overriding behavior { behaviorName } for agent with model { modelName } ") ;
352
+ Debug . Log ( $ "Overriding behavior { OriginalBehaviorName } for agent with model { modelName } ") ;
336
353
try
337
354
{
338
- m_Agent . SetModel ( GetOverrideBehaviorName ( behaviorName ) , nnModel ) ;
355
+ m_Agent . SetModel ( GetOverrideBehaviorName ( OriginalBehaviorName ) , nnModel ) ;
339
356
overrideOk = true ;
340
357
}
341
358
catch ( Exception e )
0 commit comments