Skip to content

Commit e005324

Browse files
author
FirstGearGames
committed
4.6.19R
- Fixed rigidbodies never settling on clients often resulting in very subtle shaking and excessive replicate/reconcile sends. - Fixed WriteUnsignedPackedWhole ensuring 9 bytes rather than 10, very rarely causing out of bounds exception when writing large numbers. - Fixed replayed replicates executing 1 tick early. - Improved notes within CharacterControllerPrediction demo script. - Improved upgraded internal API for Unity 6. - Added NetworkObject.LocalReconcileCorrectionType when using physics prediction; this repairs rigidbody drifting during replays due to non-deterministic physics.
1 parent a166e8d commit e005324

118 files changed

Lines changed: 3374 additions & 2455 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Assets/FishNet/CodeGenerating/Helpers/Extension/ModuleDefinitionExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public static MethodReference ImportReference(this ModuleDefinition module, Lamb
4949

5050
if (expression.Body is MemberExpression memberExpression)
5151
{
52-
var property = memberExpression.Member as PropertyInfo;
52+
PropertyInfo property = memberExpression.Member as PropertyInfo;
5353
return module.ImportReference(property.GetMethod);
5454
}
5555

Assets/FishNet/CodeGenerating/Helpers/Extension/TypeDefinitionExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ internal static MethodDefinition AddMethod(this TypeDefinition typDef, string me
341341
/// <returns></returns>
342342
internal static MethodDefinition AddMethod(this TypeDefinition typeDef, string methodName, MethodAttributes attributes, TypeReference typeReference)
343343
{
344-
var method = new MethodDefinition(methodName, attributes, typeReference);
344+
MethodDefinition method = new(methodName, attributes, typeReference);
345345
typeDef.Methods.Add(method);
346346
return method;
347347
}

Assets/FishNet/CodeGenerating/Helpers/NetworkBehaviourHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public override bool ImportReferences()
131131
Replicate_Replay_MethodRef = ImportReference(mi);
132132
else if (mi.Name == nameof(NetworkBehaviour.Replicate_Reader))
133133
Replicate_Reader_MethodRef = ImportReference(mi);
134-
else if (mi.Name == nameof(NetworkBehaviour.Reconcile_Reader))
134+
else if (mi.Name == nameof(NetworkBehaviour.Reconcile_Reader_Remote))
135135
Reconcile_Reader_MethodRef = ImportReference(mi);
136136
else if (mi.Name == nameof(NetworkBehaviour.Reconcile_Server))
137137
Reconcile_Server_MethodRef = ImportReference(mi);

Assets/FishNet/CodeGenerating/Helpers/WriterImports.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public override bool ImportReferences()
4949
// WriterPool.GetWriter
5050
Type writerPoolType = typeof(WriterPool);
5151
ImportReference(writerPoolType);
52-
foreach (var methodInfo in writerPoolType.GetMethods())
52+
foreach (MethodInfo methodInfo in writerPoolType.GetMethods())
5353
{
5454
if (methodInfo.Name == nameof(WriterPool.Retrieve))
5555
{

Assets/FishNet/CodeGenerating/ILCore/FNPostProcessorAssemblyResolver.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,29 +33,29 @@ public AssemblyDefinition Resolve(AssemblyNameReference name, ReaderParameters p
3333
return m_SelfAssembly;
3434
}
3535

36-
var fileName = FindFile(name);
36+
string fileName = FindFile(name);
3737
if (fileName == null)
3838
{
3939
return null;
4040
}
4141

42-
var lastWriteTime = File.GetLastWriteTime(fileName);
43-
var cacheKey = $"{fileName}{lastWriteTime}";
44-
if (m_AssemblyCache.TryGetValue(cacheKey, out var result))
42+
DateTime lastWriteTime = File.GetLastWriteTime(fileName);
43+
string cacheKey = $"{fileName}{lastWriteTime}";
44+
if (m_AssemblyCache.TryGetValue(cacheKey, out AssemblyDefinition result))
4545
{
4646
return result;
4747
}
4848

4949
parameters.AssemblyResolver = this;
5050

51-
var ms = MemoryStreamFor(fileName);
52-
var pdb = $"{fileName}.pdb";
51+
MemoryStream ms = MemoryStreamFor(fileName);
52+
string pdb = $"{fileName}.pdb";
5353
if (File.Exists(pdb))
5454
{
5555
parameters.SymbolStream = MemoryStreamFor(pdb);
5656
}
5757

58-
var assemblyDefinition = AssemblyDefinition.ReadAssembly(ms, parameters);
58+
AssemblyDefinition assemblyDefinition = AssemblyDefinition.ReadAssembly(ms, parameters);
5959
m_AssemblyCache.Add(cacheKey, assemblyDefinition);
6060

6161
return assemblyDefinition;
@@ -64,7 +64,7 @@ public AssemblyDefinition Resolve(AssemblyNameReference name, ReaderParameters p
6464

6565
private string FindFile(AssemblyNameReference name)
6666
{
67-
var fileName = m_AssemblyReferences.FirstOrDefault(r => Path.GetFileName(r) == $"{name.Name}.dll");
67+
string fileName = m_AssemblyReferences.FirstOrDefault(r => Path.GetFileName(r) == $"{name.Name}.dll");
6868
if (fileName != null)
6969
{
7070
return fileName;
@@ -92,10 +92,10 @@ private static MemoryStream MemoryStreamFor(string fileName)
9292
return Retry(10, TimeSpan.FromSeconds(1), () =>
9393
{
9494
byte[] byteArray;
95-
using (var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
95+
using (FileStream fs = new(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
9696
{
9797
byteArray = new byte[fs.Length];
98-
var readLength = fs.Read(byteArray, 0, (int)fs.Length);
98+
int readLength = fs.Read(byteArray, 0, (int)fs.Length);
9999
if (readLength != fs.Length)
100100
{
101101
throw new InvalidOperationException("File read length is not full length of file.");

0 commit comments

Comments
 (0)