public void Initialize() { anim = GetComponent <Animator>(); net = GetComponent <NetworkObject>(); sR = GetComponent <SpriteRenderer>(); if (anim == null) { Destroy(this); } if (sR == null) { manageSpriteFlips = false; } foreach (AnimatorControllerParameter parameter in anim.parameters) { if (parameter.type == AnimatorControllerParameterType.Bool) { animationBools.Add(parameter); animationBoolsLastValue.Add(anim.GetBool(parameter.name)); net.CreateField(parameter.name, anim.GetBool(parameter.name), NetworkField.valueInitializer.Boolean, false, false); net.FieldAddOnChangeMethod(parameter.name, OnNetworkFieldBoolUpdate); //net.FieldAddStringChangeMethod(parameter.name, "OnNetworkFieldBoolUpdate", "EntityNetworkingSystemsAnimationNetworker"); } } if (manageSpriteFlips) { net.CreateField("SRFlipX", sR.flipX, init: NetworkField.valueInitializer.Boolean, true, false); net.CreateField("SRFlipY", sR.flipX, init: NetworkField.valueInitializer.Boolean, true, false); net.FieldAddOnChangeMethod("SRFlipX", OnNetworkFieldFlipX); net.FieldAddOnChangeMethod("SRFlipY", OnNetworkFieldFlipY); } if (net.IsOwner()) { StartCoroutine(HandleAnimationBoolPackets()); } initialized = true; }
private void Awake() { net = GetComponent <NetworkObject>(); allWorkers.Add(this); int index = 0; foreach (TrackedKey key in keys) { if (key.isNetworked) { net.CreateField("IW" + key.displayName, "000", init: NetworkField.valueInitializer.None, false).reliable = key.reliable; net.FieldAddOnChangeMethod("IW" + key.displayName, key.OnNetworkUpdate, false); } keycodeLookup.Add(key.key, index); nameLookup.Add(key.displayName, index); index++; } }