public virtual void UpdateProp(PropFrame propFrame) { propName = propFrame.name; if (positionSpace == Space.World) { this.transform.position = propFrame.position.ToVector3(); } else { this.transform.localPosition = propFrame.position.ToVector3(); } Quaternion worldRotation = propFrame.rotation.ToQuaternion(); if (rotationSpace == Space.World) { this.transform.rotation = worldRotation; } else { if (transform.parent != null) { this.transform.rotation = Quaternion.Inverse(transform.parent.rotation) * worldRotation; } else { this.transform.rotation = worldRotation; } } }
public override void UpdateProp(PropFrame propFrame) { base.UpdateProp(propFrame); if (meshRenderer != null) { meshRenderer.material.color = propFrame.color.ToColor(); } }
public void UpdateRow(PropFrame propFrame) { actorPanel.SetActive(false); propPanel.SetActive(true); profileName = propFrame.name; propImage.color = propFrame.color.ToColor(); propText.text = propFrame.name; }
/// <summary> /// Main process logic of live data /// </summary> private void ProcessLiveFrame(LiveFrame_v4 frame) { // Update each actor from live data for (int i = 0; i < frame.scene.actors.Length; i++) { ActorFrame actorFrame = frame.scene.actors[i]; List <Actor> actorOverrides = GetActorOverride(actorFrame.name); // Update custom actors if any if (actorOverrides.Count > 0) { for (int a = 0; a < actorOverrides.Count; a++) { actorOverrides[a].UpdateActor(actorFrame); } } // Update default actor else if (autoGenerateInputsWhenNoOverridesFound && actors != null) { actors[actorFrame.name].UpdateActor(actorFrame); } } // Update each prop from live data for (int i = 0; i < frame.scene.props.Length; i++) { PropFrame propFrame = frame.scene.props[i]; List <Prop> propOverrides = GetPropOverride(propFrame.name); // Update custom props if any if (propOverrides.Count > 0) { for (int a = 0; a < propOverrides.Count; a++) { propOverrides[a].UpdateProp(propFrame); } } // Update default prop else if (autoGenerateInputsWhenNoOverridesFound && props != null) { props[propFrame.name].UpdateProp(propFrame); } } // Remove all default Actors that doesn't exist in data ClearUnusedDefaultInputs(frame); // Show default character UpdateDefaultActorWhenIdle(); // Update Hierarchy UI uiManager?.UpdateHierarchy(frame); }
public void UpdateHierarchy(LiveFrame_v4 dataFrame) { // Check if UI needs rebuild bool forceLayoutUpdate = false; // Update each actor from live data for (int i = 0; i < dataFrame.scene.actors.Length; i++) { ActorFrame actorFrame = dataFrame.scene.actors[i]; string profileName = actorFrame.name; // If profile doesn't exist, mark for rebuild if (forceLayoutUpdate == false && !rows.ContainsKey(profileName)) { forceLayoutUpdate = true; } rows[profileName].UpdateRow(actorFrame); } // Update each prop from live data for (int i = 0; i < dataFrame.scene.props.Length; i++) { PropFrame propFrame = dataFrame.scene.props[i]; string profileName = propFrame.name; // If profile doesn't exist, mark for rebuild if (forceLayoutUpdate == false && !rows.ContainsKey(profileName)) { forceLayoutUpdate = true; } rows[profileName].UpdateRow(propFrame); } ClearUnusedInputRows(dataFrame); if (forceLayoutUpdate) { LayoutRebuilder.ForceRebuildLayoutImmediate(prefabContainer as RectTransform); } }