public override void HandleError(SerializeError error) { AssignFieldError assignFieldError = error as AssignFieldError; ResolveTypeError resolveTypeError = error as ResolveTypeError; // BatchInfo uniforms and textures were moved to a nested ShaderParameters if (assignFieldError != null) { BatchInfo batchInfo = assignFieldError.TargetObject as BatchInfo; if (batchInfo != null) { if (assignFieldError.FieldName == "uniforms") { Dictionary <string, float[]> uniforms = assignFieldError.FieldValue as Dictionary <string, float[]>; if (uniforms != null) { foreach (var pair in uniforms) { batchInfo.SetArray(pair.Key, pair.Value); } assignFieldError.AssignSuccess = true; } } else if (assignFieldError.FieldName == "textures") { Dictionary <string, ContentRef <Texture> > textures = assignFieldError.FieldValue as Dictionary <string, ContentRef <Texture> >; if (textures != null) { foreach (var pair in textures) { ContentRef <Texture> texRef = pair.Value; texRef.EnsureLoaded(); batchInfo.SetTexture(pair.Key, texRef); } assignFieldError.AssignSuccess = true; } } } } return; }
public override void HandleError(SerializeError error) { AssignFieldError fieldError = error as AssignFieldError; if (fieldError != null && fieldError.TargetObjectType.Type.AsType() == typeof(Sound)) { Sound targetObject = fieldError.TargetObject as Sound; if (targetObject != null) { // ContentRef<AudioData> audioData --> List<ContentRef<AudioData>> audioData if (fieldError.FieldName == "audioData" && fieldError.FieldValue is ContentRef <AudioData> ) { targetObject.MainData = (ContentRef <AudioData>)fieldError.FieldValue; fieldError.AssignSuccess = true; } } } return; }
public override void HandleError(SerializeError error) { AssignFieldError assignFieldError = error as AssignFieldError; if (assignFieldError == null) { return; } // RigidBody."continous" was renamed to "useCCD" RigidBody body = assignFieldError.TargetObject as RigidBody; if (body != null && assignFieldError.FieldName == "continous") { body.ContinousCollision = (bool)assignFieldError.FieldValue; assignFieldError.AssignSuccess = true; } return; }
public override void HandleError(SerializeError error) { AssignFieldError fieldError = error as AssignFieldError; if (fieldError != null && fieldError.TargetObject is JointInfo) { RigidBody target = fieldError.FieldValue as RigidBody; JointInfo joint = fieldError.TargetObject as JointInfo; bool other = false; FieldInfo field = null; if (fieldError.FieldName == "colA") { field = fieldError.TargetObjectType.Fields.FirstOrDefault(f => f.Name == "parentBody"); } else if (fieldError.FieldName == "colB") { field = fieldError.TargetObjectType.Fields.FirstOrDefault(f => f.Name == "otherBody"); other = true; } if (field != null) { if (other) { FieldInfo jointsField = typeof(RigidBody).GetField("joints", BindingFlags.Instance | BindingFlags.NonPublic); IList <JointInfo> jointList = jointsField.GetValue(target) as IList <JointInfo>; jointList.Remove(joint); } field.SetValue(fieldError.TargetObject, fieldError.FieldValue); fieldError.AssignSuccess = true; } } return; }