本帖最後由 ziyuaner2 於 2016-1-5 23:47 編輯  
 
 
public void FixedUpdate() 
{ 
    if ((this._mode == eMode.Generate) && this.GenerateEnemy()) 
    { 
        if (this._nNowWave < (BattleDataManager.GetEnemyList().Length - 1)) 
        { 
            this._mode = eMode.Battle; 
        } 
        else 
        { 
            this._mode = eMode.Empty; 
        } 
        this._berserkTime = 30f; 
    } 
    this._FieldJobType = 0; 
    foreach (CharaBehavior behavior in this._battleManager.GetMemberList(eCharaType.ENEMY, true, false, true, false)) 
    { 
        this._FieldJobType |= ((int) 1) << behavior._param.jobType; 
    } 
} 
 
  
 
  
  public void FixedUpdate() 
{ 
    if ((this._mode == eMode.Generate) && this.GenerateEnemy()) 
    { 
        if (this._nNowWave < (BattleDataManager.GetEnemyList().Length - 1)) 
        { 
            this._mode = eMode.Battle; 
        } 
        else 
        { 
            this._mode = eMode.Empty; 
        } 
        this._berserkTime = 30f; 
    } 
    this._FieldJobType = 0; 
    foreach (CharaBehavior behavior in this._battleManager.GetMemberList(eCharaType.ENEMY, true, false, true, false)) 
    { 
        this._FieldJobType |= ((int) 1) << behavior._param.jobType; 
    } 
} 
對應IL過來就是 
.method public hidebysig instance void FixedUpdate() cil managed 
{ 
    .maxstack 17 
    .locals init ( 
        [0] class [mscorlib]System.Collections.Generic.List`1<class CharaBehavior> list, 
        [1] class CharaBehavior behavior, 
        [2] valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator`0<class CharaBehavior> enumerator) 
    L_0000: ldarg.0  
    L_0001: ldfld valuetype EnemyManager/eMode EnemyManager::_mode 
    L_0006: ldc.i4.1  
    L_0007: bne.un L_0049 
    L_000c: ldarg.0  
    L_000d: call instance bool EnemyManager::GenerateEnemy() 
    L_0012: brfalse L_0049 
    L_0017: ldarg.0  
    L_0018: ldfld int32 EnemyManager::_nNowWave 
    L_001d: call class EnesetList[] BattleDataManager::GetEnemyList() 
    L_0022: ldlen  
    L_0023: conv.i4  
    L_0024: ldc.i4.1  
    L_0025: sub  
    L_0026: bge L_0037 
    L_002b: ldarg.0  
    L_002c: ldc.i4.2  
    L_002d: stfld valuetype EnemyManager/eMode EnemyManager::_mode 
    L_0032: br L_003e 
    L_0037: ldarg.0  
    L_0038: ldc.i4.6  
    L_0039: stfld valuetype EnemyManager/eMode EnemyManager::_mode 
    L_003e: ldarg.0  
    L_003f: ldc.r4 30 
    L_0044: stfld float32 EnemyManager::_berserkTime 
    L_0049: ldarg.0  
    L_004a: ldc.i4.0  
    L_004b: stfld int32 EnemyManager::_FieldJobType 
    L_0050: ldarg.0  
    L_0051: ldfld class BattleManager EnemyManager::_battleManager 
    L_0056: ldc.i4.1  
    L_0057: ldc.i4.1  
    L_0058: ldc.i4.0  
    L_0059: ldc.i4.1  
    L_005a: ldc.i4.0  
    L_005b: callvirt instance class [mscorlib]System.Collections.Generic.List`1<class CharaBehavior> BattleManager::GetMemberList(valuetype eCharaType, bool, bool, bool, bool) 
    L_0060: stloc.0  
    L_0061: ldloc.0  
    L_0062: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator`0<!0> [mscorlib]System.Collections.Generic.List`1<class CharaBehavior>::GetEnumerator() 
    L_0067: stloc.2  
    L_0068: br L_0095 
    L_006d: ldloca.s enumerator 
    L_006f: call instance !0 [mscorlib]System.Collections.Generic.List`1/Enumerator`0<class CharaBehavior>::get_Current() 
    L_0074: stloc.1  
    L_0075: ldarg.0  
    L_0076: dup  
    L_0077: ldfld int32 EnemyManager::_FieldJobType 
    L_007c: ldc.i4.1  
    L_007d: ldloc.1  
    L_007e: ldfld class BattleParam CharaBehavior::_param 
    L_0083: callvirt instance valuetype JOB_TYPE BattleParam::get_jobType() 
    L_0088: ldc.i4.s 0x1f 
    L_008a: and  
    L_008b: ldc.i4.s 0x1f 
    L_008d: and  
    L_008e: shl  
    L_008f: or  
    L_0090: stfld int32 EnemyManager::_FieldJobType 
    L_0095: ldloca.s enumerator 
    L_0097: call instance bool [mscorlib]System.Collections.Generic.List`1/Enumerator`0<class CharaBehavior>::MoveNext() 
    L_009c: brtrue L_006d 
    L_00a1: leave L_00b2 
    L_00a6: ldloc.2  
    L_00a7: box [mscorlib]System.Collections.Generic.List`1/Enumerator`0<class CharaBehavior> 
    L_00ac: callvirt instance void [mscorlib]System.IDisposable::Dispose() 
    L_00b1: endfinally  
    L_00b2: ret  
    .try L_0068 to L_00a6 finally handler L_00a6 to L_00b2 
} 
完全不知道該怎麼辦了?。。。。你說的這個看不太明白,而且也沒有找到你說的這個ldc.i4.s這個……這個紅色的Battle在下面的IL裏面對應的是哪個啊?怎麼才能改成Empty.... |