refactor!: introduce NetVar.ValueRef & convert NetTrans.NetState to struct#1061
refactor!: introduce NetVar.ValueRef & convert NetTrans.NetState to struct#1061
Conversation
| public class NetworkTransform : NetworkBehaviour | ||
| { | ||
| internal class NetworkState : INetworkSerializable | ||
| internal struct NetworkState : INetworkSerializable |
There was a problem hiding this comment.
I wanted to see what it'd mean to convert from class to struct (turns out, it's not too bad :P)
| /// <summary> | ||
| /// The temporary accessor to enable struct element access until [MTT-1020] complete | ||
| /// </summary> | ||
| public ref T ValueRef | ||
| { | ||
| get => ref m_InternalValue; | ||
| } |
There was a problem hiding this comment.
this part is introduced by PR #1051 originally, it's here too.
I'm not sure about the ultimate API, @mattwalsh-unity might chime in here as he wants to drive this change/shift around the codebase.
There was a problem hiding this comment.
This is commented temporary, granted, but I'm not familiar with the linked issue. Can you elaborate on why marking the netvar dirty is not needed here ?
There was a problem hiding this comment.
I'm not entirely sure what is the new design direction but I can tell you why NetworkTransform's State still works: we manually mark NetVar to be dirty later in code. So, we don't rely on a get/set prop marking NetVar dirty, we mark the NetVar dirty somewhere else.
struct|
Yeah, I may be messing with the ValueRef stuff more but this looks good and I'd love to have this on mainline and rebase off of it |
…nsform * develop: (21 commits) test: adding more details to multiprocess readme (#1050) refactor!: convert NetworkTransform.NetworkState to `struct` (#1061) fix: networkmanager destroy on app quit (#1011) feat: snapshot, using unreliable packets, now that the underlying foundation supports it. Only merge after #1062 (#1064) feat: snapshot. Fully integrated despawn, mtt-1092, mtt-1056 (#1062) fix: eliminate bad use-after-free(destroy) pattern (#1068) chore: cleanup meta files for empty dirs (#1067) chore: minor MLAPI to Netcode rename (#1065) feat: report network behaviour name to the profiler (#1058) fix: player movement (#1063) test: Add unit tests for NetworkTime properties (#1053) chore: remove authority & netvar perms from NetworkTransform (#1059) feat: networktransform pos/rot/sca thresholds on state sync (#1055) feat: expose network behaviour type name internally (#1057) chore: remove all the old profiling code (#1048) fix: if-guard `NetworkManager.__rpc_name_table` access (#1056) fix: Disabling fixedupdate portion of SpawnRpcDespawn test because it's failing for known reasons that will be fixed in the IMessage refactor. (#1049) feat: Implement metrics for the new network profiler (#960) chore!: change package name & asmdefs (#1026) feat: per axis networktransform state sync (+bitwise state comp) (#1042) ... # Conflicts: # com.unity.netcode.gameobjects/Prototyping/NetworkTransform.cs
decoupling from PR #1051