public bool IsEnemy(CharacterStatus unit) { var identity = unit.characterIdentity; switch (identity) { case CharacterIdentity.transfiguration: if (playerNumber != unit.playerNumber) { var buff = (TransfigurationBuff)unit.Buffs.Find(b => b.GetType() == typeof(TransfigurationBuff)); //buff中的目标不是自己人,则一定可以判定为敌人。 if (buff.target.GetComponent <Unit>().playerNumber != playerNumber) { return(true); } //buff中的目标是自己人,则只有与该目标相同外观的角色能判定其为敌人。 else if (unit.GetComponentsInChildren <Renderer>()[0].material.name.Contains(GetComponentsInChildren <Renderer>()[0].material.name)) { return(true); } } break; default: return(playerNumber != unit.playerNumber); } return(false); }