diff --git a/Assets/Plugins/protobuf-net.3.2.30/.signature.p7s b/Assets/Plugins/protobuf-net.3.2.30/.signature.p7s deleted file mode 100755 index 4a52a1af..00000000 Binary files a/Assets/Plugins/protobuf-net.3.2.30/.signature.p7s and /dev/null differ diff --git a/Assets/Plugins/protobuf-net.3.2.30/lib/net462/protobuf-net.dll b/Assets/Plugins/protobuf-net.3.2.30/lib/net462/protobuf-net.dll deleted file mode 100755 index 79bfec96..00000000 Binary files a/Assets/Plugins/protobuf-net.3.2.30/lib/net462/protobuf-net.dll and /dev/null differ diff --git a/Assets/Plugins/protobuf-net.3.2.30/protobuf-net.3.2.30.nupkg b/Assets/Plugins/protobuf-net.3.2.30/protobuf-net.3.2.30.nupkg deleted file mode 100755 index 138df928..00000000 Binary files a/Assets/Plugins/protobuf-net.3.2.30/protobuf-net.3.2.30.nupkg and /dev/null differ diff --git a/Assets/Plugins/protobuf-net.3.2.30.meta b/Assets/Plugins/protobuf-net.3.2.45.meta similarity index 77% rename from Assets/Plugins/protobuf-net.3.2.30.meta rename to Assets/Plugins/protobuf-net.3.2.45.meta index 3d231913..3db7a089 100644 --- a/Assets/Plugins/protobuf-net.3.2.30.meta +++ b/Assets/Plugins/protobuf-net.3.2.45.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1b9de970b30074506a7e6483d17e945f +guid: 50e95dc2273c4d3ba85a05f776e780fa folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Plugins/protobuf-net.3.2.45/.signature.p7s b/Assets/Plugins/protobuf-net.3.2.45/.signature.p7s new file mode 100755 index 00000000..2a0c510d Binary files /dev/null and b/Assets/Plugins/protobuf-net.3.2.45/.signature.p7s differ diff --git a/Assets/Plugins/protobuf-net.Core.3.2.30/lib.meta b/Assets/Plugins/protobuf-net.3.2.45/lib.meta similarity index 77% rename from Assets/Plugins/protobuf-net.Core.3.2.30/lib.meta rename to Assets/Plugins/protobuf-net.3.2.45/lib.meta index 1571ac7e..05d32577 100644 --- a/Assets/Plugins/protobuf-net.Core.3.2.30/lib.meta +++ b/Assets/Plugins/protobuf-net.3.2.45/lib.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 709dfe60588b6f4f18a3d70224f99607 +guid: 538fdaf21e1677a309fe1f0cfea46ec2 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462.meta b/Assets/Plugins/protobuf-net.3.2.45/lib/net462.meta similarity index 77% rename from Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462.meta rename to Assets/Plugins/protobuf-net.3.2.45/lib/net462.meta index bb79eb5f..0b73d416 100644 --- a/Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462.meta +++ b/Assets/Plugins/protobuf-net.3.2.45/lib/net462.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 9a756380ab4f54941a4672088a8688cb +guid: 6137acc670f633dee9293f2ad950c5cb folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Plugins/protobuf-net.3.2.45/lib/net462/protobuf-net.dll b/Assets/Plugins/protobuf-net.3.2.45/lib/net462/protobuf-net.dll new file mode 100755 index 00000000..ddaee9d1 Binary files /dev/null and b/Assets/Plugins/protobuf-net.3.2.45/lib/net462/protobuf-net.dll differ diff --git a/Assets/Plugins/protobuf-net.3.2.30/lib/net462/protobuf-net.dll.meta b/Assets/Plugins/protobuf-net.3.2.45/lib/net462/protobuf-net.dll.meta similarity index 93% rename from Assets/Plugins/protobuf-net.3.2.30/lib/net462/protobuf-net.dll.meta rename to Assets/Plugins/protobuf-net.3.2.45/lib/net462/protobuf-net.dll.meta index cfad6767..ba821287 100644 --- a/Assets/Plugins/protobuf-net.3.2.30/lib/net462/protobuf-net.dll.meta +++ b/Assets/Plugins/protobuf-net.3.2.45/lib/net462/protobuf-net.dll.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 114cf757fe9d8ba2a8e823d5c13f6a38 +guid: 3c3813385ff8c05f8a0915bc2341d779 PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Plugins/protobuf-net.3.2.30/lib/net462/protobuf-net.xml b/Assets/Plugins/protobuf-net.3.2.45/lib/net462/protobuf-net.xml similarity index 97% rename from Assets/Plugins/protobuf-net.3.2.30/lib/net462/protobuf-net.xml rename to Assets/Plugins/protobuf-net.3.2.45/lib/net462/protobuf-net.xml index 239ef24e..a791ee62 100755 --- a/Assets/Plugins/protobuf-net.3.2.30/lib/net462/protobuf-net.xml +++ b/Assets/Plugins/protobuf-net.3.2.45/lib/net462/protobuf-net.xml @@ -261,6 +261,11 @@ Indicates whether the current type has defined subtypes + + + Returns the number of defined subtypes on the current type + + Returns the set of callbacks defined for this type diff --git a/Assets/Plugins/protobuf-net.3.2.30/lib/net462/protobuf-net.xml.meta b/Assets/Plugins/protobuf-net.3.2.45/lib/net462/protobuf-net.xml.meta similarity index 75% rename from Assets/Plugins/protobuf-net.3.2.30/lib/net462/protobuf-net.xml.meta rename to Assets/Plugins/protobuf-net.3.2.45/lib/net462/protobuf-net.xml.meta index 3c8c2ae1..83e0ffa3 100644 --- a/Assets/Plugins/protobuf-net.3.2.30/lib/net462/protobuf-net.xml.meta +++ b/Assets/Plugins/protobuf-net.3.2.45/lib/net462/protobuf-net.xml.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 530f278057729e4ecb3a66d2f1b8ce99 +guid: 582bd589c55ffb90394f82e40e5ab813 TextScriptImporter: externalObjects: {} userData: diff --git a/Assets/Plugins/protobuf-net.3.2.45/protobuf-net.3.2.45.nupkg b/Assets/Plugins/protobuf-net.3.2.45/protobuf-net.3.2.45.nupkg new file mode 100755 index 00000000..db3f46cb Binary files /dev/null and b/Assets/Plugins/protobuf-net.3.2.45/protobuf-net.3.2.45.nupkg differ diff --git a/Assets/Plugins/protobuf-net.Core.3.2.30/protobuf-net.Core.3.2.30.nupkg.meta b/Assets/Plugins/protobuf-net.3.2.45/protobuf-net.3.2.45.nupkg.meta similarity index 74% rename from Assets/Plugins/protobuf-net.Core.3.2.30/protobuf-net.Core.3.2.30.nupkg.meta rename to Assets/Plugins/protobuf-net.3.2.45/protobuf-net.3.2.45.nupkg.meta index 00708cb8..a5a441e6 100644 --- a/Assets/Plugins/protobuf-net.Core.3.2.30/protobuf-net.Core.3.2.30.nupkg.meta +++ b/Assets/Plugins/protobuf-net.3.2.45/protobuf-net.3.2.45.nupkg.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 83af4e654a23c173d887f45a17802d8b +guid: ec0f7344108f4d2b4ae015bbb881997d DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Plugins/protobuf-net.3.2.30/protobuf-net.png b/Assets/Plugins/protobuf-net.3.2.45/protobuf-net.png similarity index 100% rename from Assets/Plugins/protobuf-net.3.2.30/protobuf-net.png rename to Assets/Plugins/protobuf-net.3.2.45/protobuf-net.png diff --git a/Assets/Plugins/protobuf-net.3.2.30/protobuf-net.png.meta b/Assets/Plugins/protobuf-net.3.2.45/protobuf-net.png.meta similarity index 97% rename from Assets/Plugins/protobuf-net.3.2.30/protobuf-net.png.meta rename to Assets/Plugins/protobuf-net.3.2.45/protobuf-net.png.meta index dac0ad69..93d7763b 100644 --- a/Assets/Plugins/protobuf-net.3.2.30/protobuf-net.png.meta +++ b/Assets/Plugins/protobuf-net.3.2.45/protobuf-net.png.meta @@ -1,9 +1,9 @@ fileFormatVersion: 2 -guid: d99f98f8bb889343497813b72a24cf32 +guid: 63333dc2d52d2d93dafd5ca0e73c7851 TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 12 + serializedVersion: 13 mipmaps: mipMapMode: 0 enableMipMap: 1 diff --git a/Assets/Plugins/protobuf-net.3.2.45/readme.md b/Assets/Plugins/protobuf-net.3.2.45/readme.md new file mode 100755 index 00000000..c846b1ee --- /dev/null +++ b/Assets/Plugins/protobuf-net.3.2.45/readme.md @@ -0,0 +1,122 @@ +# protobuf-net logo protobuf-net +protobuf-net is a contract based serializer for .NET code, that happens to write data in the "protocol buffers" serialization format engineered by Google. The API, however, is very different to Google's, and follows typical .NET patterns (it is broadly comparable, in usage, to `XmlSerializer`, `DataContractSerializer`, etc). It should work for most .NET languages that write standard types and can use attributes. + +[![Build status](https://ci.appveyor.com/api/projects/status/1pj6gk7h37bjn200/branch/main?svg=true)](https://ci.appveyor.com/project/StackExchange/protobuf-net/branch/main) + +## Release Notes + +[v3 is here!](https://protobuf-net.github.io/protobuf-net/3_0) + +[Change history and pending changes are here](https://protobuf-net.github.io/protobuf-net/releasenotes). + +--- + +## Supported Runtimes +- .NET 6.0+ (.NET 5 etc will use .NET Standard 2.1) +- .NET Standard 2.0, 2.1 +- .NET Framework 4.6.2+ + +## Build tools + +Build tools to help you use protobuf-net correctly are [available via `protobuf-net.BuildTools`](https://protobuf-net.github.io/protobuf-net/build_tools) + +## Runtime Installation + +All stable and some pre-release packages are available on NuGet. CI Builds are available via MyGet (feed URL: `https://www.myget.org/F/protobuf-net/api/v3/index.json `). + +You can use the following command in the Package Manager Console: +```ps +Install-Package protobuf-net +``` + +| Package | NuGet Stable | NuGet Pre-release | Downloads | MyGet | +| ------- | ------------ | ----------------- | --------- | ----- | +| [protobuf-net](https://www.nuget.org/packages/protobuf-net/) | [![protobuf-net](https://img.shields.io/nuget/v/protobuf-net.svg)](https://www.nuget.org/packages/protobuf-net/) | [![protobuf-net](https://img.shields.io/nuget/vpre/protobuf-net.svg)](https://www.nuget.org/packages/protobuf-net/) | [![protobuf-net](https://img.shields.io/nuget/dt/protobuf-net.svg)](https://www.nuget.org/packages/protobuf-net/) | [![protobuf-net MyGet](https://img.shields.io/myget/protobuf-net/vpre/protobuf-net.svg)](https://www.myget.org/feed/protobuf-net/package/nuget/protobuf-net) | + +## Basic usage + +### 1 First Decorate your classes +```csharp +[ProtoContract] +class Person { + [ProtoMember(1)] + public int Id {get;set;} + [ProtoMember(2)] + public string Name {get;set;} + [ProtoMember(3)] + public Address Address {get;set;} +} +[ProtoContract] +class Address { + [ProtoMember(1)] + public string Line1 {get;set;} + [ProtoMember(2)] + public string Line2 {get;set;} +} +``` +Note that unlike XmlSerializer, the member-names are not encoded in the data - instead, you must pick an integer to identify each member. Additionally, to show intent it is necessary to show that we intend this type to be serialized (i.e. that it is a data contract). + +### 2 Serialize your data + +This writes a 32 byte file to "person.bin" : +```csharp +var person = new Person { + Id = 12345, Name = "Fred", + Address = new Address { + Line1 = "Flat 1", + Line2 = "The Meadows" + } +}; +using (var file = File.Create("person.bin")) { + Serializer.Serialize(file, person); +} +``` + +### 3 Deserialize your data + +This reads the data back from "person.bin" : +```csharp +Person newPerson; +using (var file = File.OpenRead("person.bin")) { + newPerson = Serializer.Deserialize(file); +} +``` + +### Notes + +#### Notes for Identifiers + +* they must be positive integers (for best portability, they should be `<= 536870911` and not in the range `19000-19999`) +* they must be unique within a single type but the same numbers can be re-used in sub-types if inheritance is enabled +* the identifiers must not conflict with any inheritance identifiers (discussed later) +* lower numbers take less space - don't start at 100,000,000 +* the identifier is important; you can change the member-name, or shift it between a property and a field, but changing the identifier changes the data + +## Advanced subjects + +### Inheritance + +Inheritance must be explicitly declared, in a similar way that it must for XmlSerializer and DataContractSerializer. This is done via [ProtoInclude(...)] on each type with known sub-types: + +```csharp +[ProtoContract] +[ProtoInclude(7, typeof(SomeDerivedType))] +class SomeBaseType {...} + +[ProtoContract] +class SomeDerivedType {...} +``` +There is no special significance in the 7 above; it is an integer key, just like every [ProtoMember(...)]. It must be unique in terms of SomeBaseType (no other [ProtoInclude(...)] or [ProtoMember(...)] in SomeBaseType can use 7), but does not need to be unique globally. + +### .proto file + +As an alternative to writing your classes and decorating them, You can generate your types from a .proto schema using [`protogen`](https://protogen.marcgravell.com/); +the `protogen` tool is available as a zip from that location, or [as a "global tool"](https://www.nuget.org/packages/protobuf-net.Protogen) (multi-platform). + +### Alternative to attributes + +In v2+, everything that can be done with attributes can also be configured at runtime via `RuntimeTypeModel`. The Serializer.* methods are basically just shortcuts to RuntimeTypeModel.Default.*, so to manipulate the behaviour of Serializer.*, you must configure RuntimeTypeModel.Default. + +## Support + +I try to be responsive to [Stack Overflow questions in the `protobuf-net` tag](https://stackoverflow.com/questions/tagged/protobuf-net), [issues logged on GitHub](https://github.com/protobuf-net/protobuf-net), [email](mailto:marc.gravell@gmail.com), etc. I don't currently offer a paid support channel. If I've helped you, feel free to [buy me a coffee](https://buymeacoff.ee/marcgravell) or see the "Sponsor" link [at the top of the GitHub page](https://github.com/protobuf-net/protobuf-net). diff --git a/Assets/Plugins/protobuf-net.3.2.45/readme.md.meta b/Assets/Plugins/protobuf-net.3.2.45/readme.md.meta new file mode 100644 index 00000000..b5821ea6 --- /dev/null +++ b/Assets/Plugins/protobuf-net.3.2.45/readme.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b780870a316679f0bbae98b27804e300 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/protobuf-net.Core.3.2.30/.signature.p7s b/Assets/Plugins/protobuf-net.Core.3.2.30/.signature.p7s deleted file mode 100755 index ab3072a8..00000000 Binary files a/Assets/Plugins/protobuf-net.Core.3.2.30/.signature.p7s and /dev/null differ diff --git a/Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462/protobuf-net.Core.dll b/Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462/protobuf-net.Core.dll deleted file mode 100755 index 8d9b7188..00000000 Binary files a/Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462/protobuf-net.Core.dll and /dev/null differ diff --git a/Assets/Plugins/protobuf-net.Core.3.2.30/protobuf-net.Core.3.2.30.nupkg b/Assets/Plugins/protobuf-net.Core.3.2.30/protobuf-net.Core.3.2.30.nupkg deleted file mode 100755 index da7adef6..00000000 Binary files a/Assets/Plugins/protobuf-net.Core.3.2.30/protobuf-net.Core.3.2.30.nupkg and /dev/null differ diff --git a/Assets/Plugins/protobuf-net.Core.3.2.30.meta b/Assets/Plugins/protobuf-net.Core.3.2.45.meta similarity index 77% rename from Assets/Plugins/protobuf-net.Core.3.2.30.meta rename to Assets/Plugins/protobuf-net.Core.3.2.45.meta index 3b97fa2f..4cdaaa3d 100644 --- a/Assets/Plugins/protobuf-net.Core.3.2.30.meta +++ b/Assets/Plugins/protobuf-net.Core.3.2.45.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1521973e5d22dfb199b070ce96daf2d2 +guid: b2ba5606acef674dd8a0ec0bb2e56024 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Plugins/protobuf-net.Core.3.2.45/.signature.p7s b/Assets/Plugins/protobuf-net.Core.3.2.45/.signature.p7s new file mode 100755 index 00000000..f50e3a9f Binary files /dev/null and b/Assets/Plugins/protobuf-net.Core.3.2.45/.signature.p7s differ diff --git a/Assets/Plugins/protobuf-net.3.2.30/lib.meta b/Assets/Plugins/protobuf-net.Core.3.2.45/lib.meta similarity index 77% rename from Assets/Plugins/protobuf-net.3.2.30/lib.meta rename to Assets/Plugins/protobuf-net.Core.3.2.45/lib.meta index d35d4b6b..86997fa7 100644 --- a/Assets/Plugins/protobuf-net.3.2.30/lib.meta +++ b/Assets/Plugins/protobuf-net.Core.3.2.45/lib.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 45bfbe40a25609939aec4e637a6bf2c8 +guid: 3b9977f0936b49c64814ccca0b5ab4cd folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Plugins/protobuf-net.3.2.30/lib/net462.meta b/Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462.meta similarity index 77% rename from Assets/Plugins/protobuf-net.3.2.30/lib/net462.meta rename to Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462.meta index 7435f32c..c97c1b16 100644 --- a/Assets/Plugins/protobuf-net.3.2.30/lib/net462.meta +++ b/Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d2dc547dadb564d6d9741cd7c0c5aac8 +guid: b85024f64235ea6a492e4a8651ca349e folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462/protobuf-net.Core.dll b/Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462/protobuf-net.Core.dll new file mode 100755 index 00000000..491a1bed Binary files /dev/null and b/Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462/protobuf-net.Core.dll differ diff --git a/Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462/protobuf-net.Core.dll.meta b/Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462/protobuf-net.Core.dll.meta similarity index 93% rename from Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462/protobuf-net.Core.dll.meta rename to Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462/protobuf-net.Core.dll.meta index 9800439d..7063629b 100644 --- a/Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462/protobuf-net.Core.dll.meta +++ b/Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462/protobuf-net.Core.dll.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f8be9b606cf2f306c8b408bdc35b2b42 +guid: be282569674d1b246be2e4d0e480999f PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462/protobuf-net.Core.xml b/Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462/protobuf-net.Core.xml similarity index 98% rename from Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462/protobuf-net.Core.xml rename to Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462/protobuf-net.Core.xml index d3d1b32f..1d01ea48 100755 --- a/Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462/protobuf-net.Core.xml +++ b/Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462/protobuf-net.Core.xml @@ -1291,6 +1291,11 @@ Record the sub-type relationship formally in schemas + + + Provides support for adding Prefix to names of Enum members in schemas + + Describes a service. @@ -4092,6 +4097,9 @@ Create a serializer that operates on lists + + Create a serializer that operates on sets + Reverses a range of values diff --git a/Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462/protobuf-net.Core.xml.meta b/Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462/protobuf-net.Core.xml.meta similarity index 75% rename from Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462/protobuf-net.Core.xml.meta rename to Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462/protobuf-net.Core.xml.meta index 03c48350..e13108f7 100644 --- a/Assets/Plugins/protobuf-net.Core.3.2.30/lib/net462/protobuf-net.Core.xml.meta +++ b/Assets/Plugins/protobuf-net.Core.3.2.45/lib/net462/protobuf-net.Core.xml.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6b7ce9decd4864473bf714da2742bec1 +guid: c488edbf521e0073da0454b43faefaa7 TextScriptImporter: externalObjects: {} userData: diff --git a/Assets/Plugins/protobuf-net.Core.3.2.45/protobuf-net.Core.3.2.45.nupkg b/Assets/Plugins/protobuf-net.Core.3.2.45/protobuf-net.Core.3.2.45.nupkg new file mode 100755 index 00000000..b9ea11b7 Binary files /dev/null and b/Assets/Plugins/protobuf-net.Core.3.2.45/protobuf-net.Core.3.2.45.nupkg differ diff --git a/Assets/Plugins/protobuf-net.3.2.30/protobuf-net.3.2.30.nupkg.meta b/Assets/Plugins/protobuf-net.Core.3.2.45/protobuf-net.Core.3.2.45.nupkg.meta similarity index 74% rename from Assets/Plugins/protobuf-net.3.2.30/protobuf-net.3.2.30.nupkg.meta rename to Assets/Plugins/protobuf-net.Core.3.2.45/protobuf-net.Core.3.2.45.nupkg.meta index 4647ed09..cd1a4599 100644 --- a/Assets/Plugins/protobuf-net.3.2.30/protobuf-net.3.2.30.nupkg.meta +++ b/Assets/Plugins/protobuf-net.Core.3.2.45/protobuf-net.Core.3.2.45.nupkg.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5ea6dc5dcbb865f06ae70bccf072da13 +guid: 2019c35794f55054caf34242961b9d12 DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Plugins/protobuf-net.Core.3.2.30/protobuf-net.png b/Assets/Plugins/protobuf-net.Core.3.2.45/protobuf-net.png similarity index 100% rename from Assets/Plugins/protobuf-net.Core.3.2.30/protobuf-net.png rename to Assets/Plugins/protobuf-net.Core.3.2.45/protobuf-net.png diff --git a/Assets/Plugins/protobuf-net.Core.3.2.30/protobuf-net.png.meta b/Assets/Plugins/protobuf-net.Core.3.2.45/protobuf-net.png.meta similarity index 97% rename from Assets/Plugins/protobuf-net.Core.3.2.30/protobuf-net.png.meta rename to Assets/Plugins/protobuf-net.Core.3.2.45/protobuf-net.png.meta index e94537ee..ed02e0e9 100644 --- a/Assets/Plugins/protobuf-net.Core.3.2.30/protobuf-net.png.meta +++ b/Assets/Plugins/protobuf-net.Core.3.2.45/protobuf-net.png.meta @@ -1,9 +1,9 @@ fileFormatVersion: 2 -guid: 9601699cde299cf198a0c91cb430529e +guid: 1d08cf0b09e7c6fde85e6bad88558063 TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 12 + serializedVersion: 13 mipmaps: mipMapMode: 0 enableMipMap: 1 diff --git a/Assets/Plugins/protobuf-net.Core.3.2.45/readme.md b/Assets/Plugins/protobuf-net.Core.3.2.45/readme.md new file mode 100755 index 00000000..c846b1ee --- /dev/null +++ b/Assets/Plugins/protobuf-net.Core.3.2.45/readme.md @@ -0,0 +1,122 @@ +# protobuf-net logo protobuf-net +protobuf-net is a contract based serializer for .NET code, that happens to write data in the "protocol buffers" serialization format engineered by Google. The API, however, is very different to Google's, and follows typical .NET patterns (it is broadly comparable, in usage, to `XmlSerializer`, `DataContractSerializer`, etc). It should work for most .NET languages that write standard types and can use attributes. + +[![Build status](https://ci.appveyor.com/api/projects/status/1pj6gk7h37bjn200/branch/main?svg=true)](https://ci.appveyor.com/project/StackExchange/protobuf-net/branch/main) + +## Release Notes + +[v3 is here!](https://protobuf-net.github.io/protobuf-net/3_0) + +[Change history and pending changes are here](https://protobuf-net.github.io/protobuf-net/releasenotes). + +--- + +## Supported Runtimes +- .NET 6.0+ (.NET 5 etc will use .NET Standard 2.1) +- .NET Standard 2.0, 2.1 +- .NET Framework 4.6.2+ + +## Build tools + +Build tools to help you use protobuf-net correctly are [available via `protobuf-net.BuildTools`](https://protobuf-net.github.io/protobuf-net/build_tools) + +## Runtime Installation + +All stable and some pre-release packages are available on NuGet. CI Builds are available via MyGet (feed URL: `https://www.myget.org/F/protobuf-net/api/v3/index.json `). + +You can use the following command in the Package Manager Console: +```ps +Install-Package protobuf-net +``` + +| Package | NuGet Stable | NuGet Pre-release | Downloads | MyGet | +| ------- | ------------ | ----------------- | --------- | ----- | +| [protobuf-net](https://www.nuget.org/packages/protobuf-net/) | [![protobuf-net](https://img.shields.io/nuget/v/protobuf-net.svg)](https://www.nuget.org/packages/protobuf-net/) | [![protobuf-net](https://img.shields.io/nuget/vpre/protobuf-net.svg)](https://www.nuget.org/packages/protobuf-net/) | [![protobuf-net](https://img.shields.io/nuget/dt/protobuf-net.svg)](https://www.nuget.org/packages/protobuf-net/) | [![protobuf-net MyGet](https://img.shields.io/myget/protobuf-net/vpre/protobuf-net.svg)](https://www.myget.org/feed/protobuf-net/package/nuget/protobuf-net) | + +## Basic usage + +### 1 First Decorate your classes +```csharp +[ProtoContract] +class Person { + [ProtoMember(1)] + public int Id {get;set;} + [ProtoMember(2)] + public string Name {get;set;} + [ProtoMember(3)] + public Address Address {get;set;} +} +[ProtoContract] +class Address { + [ProtoMember(1)] + public string Line1 {get;set;} + [ProtoMember(2)] + public string Line2 {get;set;} +} +``` +Note that unlike XmlSerializer, the member-names are not encoded in the data - instead, you must pick an integer to identify each member. Additionally, to show intent it is necessary to show that we intend this type to be serialized (i.e. that it is a data contract). + +### 2 Serialize your data + +This writes a 32 byte file to "person.bin" : +```csharp +var person = new Person { + Id = 12345, Name = "Fred", + Address = new Address { + Line1 = "Flat 1", + Line2 = "The Meadows" + } +}; +using (var file = File.Create("person.bin")) { + Serializer.Serialize(file, person); +} +``` + +### 3 Deserialize your data + +This reads the data back from "person.bin" : +```csharp +Person newPerson; +using (var file = File.OpenRead("person.bin")) { + newPerson = Serializer.Deserialize(file); +} +``` + +### Notes + +#### Notes for Identifiers + +* they must be positive integers (for best portability, they should be `<= 536870911` and not in the range `19000-19999`) +* they must be unique within a single type but the same numbers can be re-used in sub-types if inheritance is enabled +* the identifiers must not conflict with any inheritance identifiers (discussed later) +* lower numbers take less space - don't start at 100,000,000 +* the identifier is important; you can change the member-name, or shift it between a property and a field, but changing the identifier changes the data + +## Advanced subjects + +### Inheritance + +Inheritance must be explicitly declared, in a similar way that it must for XmlSerializer and DataContractSerializer. This is done via [ProtoInclude(...)] on each type with known sub-types: + +```csharp +[ProtoContract] +[ProtoInclude(7, typeof(SomeDerivedType))] +class SomeBaseType {...} + +[ProtoContract] +class SomeDerivedType {...} +``` +There is no special significance in the 7 above; it is an integer key, just like every [ProtoMember(...)]. It must be unique in terms of SomeBaseType (no other [ProtoInclude(...)] or [ProtoMember(...)] in SomeBaseType can use 7), but does not need to be unique globally. + +### .proto file + +As an alternative to writing your classes and decorating them, You can generate your types from a .proto schema using [`protogen`](https://protogen.marcgravell.com/); +the `protogen` tool is available as a zip from that location, or [as a "global tool"](https://www.nuget.org/packages/protobuf-net.Protogen) (multi-platform). + +### Alternative to attributes + +In v2+, everything that can be done with attributes can also be configured at runtime via `RuntimeTypeModel`. The Serializer.* methods are basically just shortcuts to RuntimeTypeModel.Default.*, so to manipulate the behaviour of Serializer.*, you must configure RuntimeTypeModel.Default. + +## Support + +I try to be responsive to [Stack Overflow questions in the `protobuf-net` tag](https://stackoverflow.com/questions/tagged/protobuf-net), [issues logged on GitHub](https://github.com/protobuf-net/protobuf-net), [email](mailto:marc.gravell@gmail.com), etc. I don't currently offer a paid support channel. If I've helped you, feel free to [buy me a coffee](https://buymeacoff.ee/marcgravell) or see the "Sponsor" link [at the top of the GitHub page](https://github.com/protobuf-net/protobuf-net). diff --git a/Assets/Plugins/protobuf-net.Core.3.2.45/readme.md.meta b/Assets/Plugins/protobuf-net.Core.3.2.45/readme.md.meta new file mode 100644 index 00000000..93667203 --- /dev/null +++ b/Assets/Plugins/protobuf-net.Core.3.2.45/readme.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 091a6a26aabc28ed1a9d373b25e73a7c +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Devices/Camera.cs b/Assets/Scripts/Devices/Camera.cs index 86f9ab54..569469de 100644 --- a/Assets/Scripts/Devices/Camera.cs +++ b/Assets/Scripts/Devices/Camera.cs @@ -211,8 +211,8 @@ private void SetupDefaultCamera() dimension: TextureDimension.Tex2D, msaaSamples: MSAASamples.MSAA2x, enableRandomWrite: false, - useMipMap: true, - autoGenerateMips: true, + useMipMap: false, + autoGenerateMips: false, isShadowMap: false, anisoLevel: 3, mipMapBias: 0, diff --git a/Assets/Scripts/Devices/Lidar.cs b/Assets/Scripts/Devices/Lidar.cs index 8a3d8464..1e234ee2 100644 --- a/Assets/Scripts/Devices/Lidar.cs +++ b/Assets/Scripts/Devices/Lidar.cs @@ -425,7 +425,7 @@ private IEnumerator LaserProcsssing() laserScan.WorldPose.Position.Set(lidarPosition); laserScan.WorldPose.Orientation.Set(lidarRotation); - + var laserSamplesH = (int)horizontal.samples; var laserStartAngleH = (float)horizontal.angle.min; var laserEndAngleH = (float)horizontal.angle.max; diff --git a/Assets/Scripts/Devices/MicomCommand.cs b/Assets/Scripts/Devices/MicomCommand.cs index 2506aff2..577c904d 100644 --- a/Assets/Scripts/Devices/MicomCommand.cs +++ b/Assets/Scripts/Devices/MicomCommand.cs @@ -69,21 +69,23 @@ protected override void ProcessDevice() } else { - var customCmd = receivedMessage.GetMessage(); - if (customCmd != null) + var joystick = receivedMessage.GetMessage(); + if (joystick != null) { - if (customCmd.Name.StartsWith("mowing")) - { - ControlMowing(customCmd.Name, customCmd.Value); - } + ControlJoystick(joystick); } else { - var joystick = receivedMessage.GetMessage(); - - if (joystick != null) + var customCmd = receivedMessage.GetMessage(); + if (customCmd != null) { - ControlJoystick(joystick); + if (customCmd.Name.StartsWith("mowing")) + { + ControlMowing(customCmd.Name, customCmd.Value); + } + else if (customCmd.Name.StartsWith("display")) + { + } } #if UNITY_EDITOR else @@ -169,7 +171,7 @@ private void ControlJoystick(in cloisim.msgs.Joystick message) if (Mathf.Abs(stickTranslation.y) > float.Epsilon) { var headsetTarget = Mathf.Abs(stickTranslation.y) * - ((stickTranslation.y >= 0) ? balancedDrive.HeightTargetMin : balancedDrive.HeightTargetMax); + ((stickTranslation.y >= 0) ? balancedDrive.HeadsetTargetMin : balancedDrive.HeadsetTargetMax); balancedDrive.HeadsetTarget = headsetTarget; } } diff --git a/Assets/Scripts/Devices/Modules/Articulation.cs b/Assets/Scripts/Devices/Modules/Articulation.cs index 98fce316..421359bc 100644 --- a/Assets/Scripts/Devices/Modules/Articulation.cs +++ b/Assets/Scripts/Devices/Modules/Articulation.cs @@ -54,6 +54,34 @@ public Articulation(in GameObject target) { } + public ArticulationDrive GetDrive() + { + var drive = new ArticulationDrive(); + if (_jointBody.swingYLock == ArticulationDofLock.LockedMotion && + _jointBody.swingZLock == ArticulationDofLock.LockedMotion && + _jointBody.twistLock != ArticulationDofLock.LockedMotion) + { + drive = _jointBody.xDrive; + } + else if (_jointBody.swingYLock == ArticulationDofLock.LockedMotion && + _jointBody.swingZLock != ArticulationDofLock.LockedMotion && + _jointBody.twistLock == ArticulationDofLock.LockedMotion) + { + drive = _jointBody.xDrive; + } + else if (_jointBody.swingYLock != ArticulationDofLock.LockedMotion && + _jointBody.swingZLock == ArticulationDofLock.LockedMotion && + _jointBody.twistLock == ArticulationDofLock.LockedMotion) + { + drive = _jointBody.yDrive; + } + else + { + Debug.LogWarning("Cannot Get Drive(), axis of drive joint is complex!!!!"); + } + return drive; + } + #if true // TODO: Candidate to remove due to AriticulationBody.maxJointVelocity public void SetVelocityLimit(in float value) { diff --git a/Assets/Scripts/Devices/Modules/Base/DeviceHelper.cs b/Assets/Scripts/Devices/Modules/Base/DeviceHelper.cs index a43ea601..fef62174 100644 --- a/Assets/Scripts/Devices/Modules/Base/DeviceHelper.cs +++ b/Assets/Scripts/Devices/Modules/Base/DeviceHelper.cs @@ -89,9 +89,9 @@ public static string GetPartsName(in GameObject targetObject) else { var linkHelper = targetObject.GetComponentInParent(); - if (linkHelper.transform.parent.CompareTag("Link")) + if (linkHelper.transform.parent.CompareTag("Link")) // if sensor link is nested in link element { - return linkHelper.transform.parent.name; // link name + return linkHelper.name; // link name } else { diff --git a/Assets/Scripts/Devices/Modules/Motor/SelfBalanceControl/SelfBalancedDrive.cs b/Assets/Scripts/Devices/Modules/Motor/SelfBalanceControl/SelfBalancedDrive.cs index f36fc172..db47c67f 100644 --- a/Assets/Scripts/Devices/Modules/Motor/SelfBalanceControl/SelfBalancedDrive.cs +++ b/Assets/Scripts/Devices/Modules/Motor/SelfBalanceControl/SelfBalancedDrive.cs @@ -41,6 +41,7 @@ public class SelfBalancedDrive : MotorControl #endregion #region Headset Control + private double _initialHeadsetTarget = 0; private double _commandTargetHeadset = 0; // in deg private float _doControlHeadsetByCommandTimeout = 0; #endregion @@ -55,7 +56,7 @@ public class SelfBalancedDrive : MotorControl private readonly MathUtil.MinMax FalldownRollThreshold = new MathUtil.MinMax(-1.35f, 1.35f); // in rad private readonly MathUtil.MinMax RollLimit = new MathUtil.MinMax(-5f, 5f); // in deg private readonly MathUtil.MinMax HeightLimit = new MathUtil.MinMax(-30f, 22f); // in deg - private readonly MathUtil.MinMax HeadsetLimit = new MathUtil.MinMax(-90f, 90f); // in deg + private MathUtil.MinMax _limitHeadset = new MathUtil.MinMax(-130f, 130f); // in deg #endregion public double HeightTarget @@ -94,13 +95,13 @@ public double HeadsetTarget get => _commandTargetHeadset; set { - _commandTargetHeadset = Math.Clamp(value, HeadsetLimit.min + CommandMargin, HeadsetLimit.max - CommandMargin); + _commandTargetHeadset = Math.Clamp(value, _limitHeadset.min + CommandMargin, _limitHeadset.max - CommandMargin); _doControlHeadsetByCommandTimeout = CommandTimeout; } } - public double HeightTargetMin => HeadsetLimit.min; - public double HeightTargetMax => HeadsetLimit.max; + public double HeadsetTargetMin => _limitHeadset.min; + public double HeadsetTargetMax => _limitHeadset.max; public bool Balancing { @@ -146,7 +147,7 @@ public override void Reset() { Debug.Log("========== SelfBalancedDrive Reset =========="); - _commandTargetHeadset = 0; + _commandTargetHeadset = _initialHeadsetTarget; _commandTargetRollByDrive = 0; _commandTargetPitch = 0; @@ -199,6 +200,9 @@ public void SetHeadJoint(in string targetJointName) { AttachMotor(Location.HEAD, targetJointName); ChangeDriveType(Location.HEAD, ArticulationDriveType.Target); + var drive = _motorList[Location.HEAD].GetDrive(); + _initialHeadsetTarget = drive.target; + _limitHeadset = new MathUtil.MinMax(drive.lowerLimit, drive.upperLimit); } public void SetBodyJoint(in string targetJointName) @@ -296,7 +300,7 @@ private void RestorePitchZero(in double currentCommandPitch, in float duration) private void AdjustHeadsetByPitch(in double currentPitch, in float duration) { const double HeadsetTargetAdjustGain = 1.5f; - var target = currentPitch * HeadsetTargetAdjustGain * Mathf.Rad2Deg; + var target = _initialHeadsetTarget + (currentPitch * HeadsetTargetAdjustGain * Mathf.Rad2Deg); _commandTargetHeadset = Mathf.Lerp((float)_commandTargetHeadset, (float)target, duration); // Debug.LogWarning("Adjusting head by pitch"); } @@ -374,12 +378,17 @@ private void SetWheelEfforts(in Vector2d efforts) _motorList[Location.FRONT_WHEEL_RIGHT]?.SetJointForce((float)Unity2SDF.Direction.Curve(efforts.y)); } - private void SetJoints(in VectorXd targets) + public void SetJointHeadset(in float target) { if (_motorList.ContainsKey(Location.HEAD)) { - _motorList[Location.HEAD]?.Drive(targetPosition: (float)targets[0]); + _motorList[Location.HEAD]?.Drive(targetPosition: target); } + } + + private void SetJoints(in VectorXd targets) + { + SetJointHeadset((float)targets[0]); if (_motorList.ContainsKey(Location.BODY)) { @@ -493,8 +502,6 @@ private void ProcessBalancing(in Vector2 wheelVelocity, in float duration, Vecto { RestoreHipAndLegZero(); } - - var jointTargets = ControlHipAndLeg(pitch); #endregion #region Self-Balanced Control @@ -529,11 +536,12 @@ private void ProcessBalancing(in Vector2 wheelVelocity, in float duration, Vecto { AdjustHeadsetByPitch(wipStates[3], duration); } + #endregion + var jointTargets = ControlHipAndLeg(pitch); SetJoints(jointTargets); var wipEfforts = _smc.ComputeControl(wipStates, wipReferences, duration); SetWheelEfforts(wipEfforts); - #endregion } } \ No newline at end of file diff --git a/Assets/Scripts/Tools/MathUtil.cs b/Assets/Scripts/Tools/MathUtil.cs index 4885408f..7e912664 100644 --- a/Assets/Scripts/Tools/MathUtil.cs +++ b/Assets/Scripts/Tools/MathUtil.cs @@ -11,7 +11,7 @@ public static class MathUtil private const double PI = Math.PI; private const double PI2 = PI * 2; - readonly public struct MinMax + public readonly struct MinMax { public readonly float min; public readonly float max; @@ -30,6 +30,11 @@ public MinMax(in double min = 0, in double max = 0) this.max = (float)max; this.range = (float)(max - min); } + + public override string ToString() + { + return $"MinMax[ min:{min}, max:{max}, range:{range} ]"; + } } public static class Angle diff --git a/Assets/Scripts/Tools/SDF/Import/Import.Base.cs b/Assets/Scripts/Tools/SDF/Import/Import.Base.cs index 2c30f9c0..1a93f68e 100644 --- a/Assets/Scripts/Tools/SDF/Import/Import.Base.cs +++ b/Assets/Scripts/Tools/SDF/Import/Import.Base.cs @@ -155,7 +155,6 @@ public IEnumerator Start(Model model) } modelObject.SpecifyPose(); - yield return null; } } } diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index d5d8e763..ddd1e217 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -140,7 +140,7 @@ PlayerSettings: loadStoreDebugModeEnabled: 0 visionOSBundleVersion: 1.0 tvOSBundleVersion: 1.0 - bundleVersion: 4.9.5 + bundleVersion: 4.9.6 preloadedAssets: [] metroInputSource: 0 wsaTransparentSwapchain: 0 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 2b775c52..09e5a3b0 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2022.3.54f1 -m_EditorVersionWithRevision: 2022.3.54f1 (129125d4e700) +m_EditorVersion: 2022.3.55f1 +m_EditorVersionWithRevision: 2022.3.55f1 (9f374180d209) diff --git a/README.md b/README.md index 3c138283..6adb8066 100644 --- a/README.md +++ b/README.md @@ -151,7 +151,7 @@ if `` element of `