13 changed files with 168 additions and 216 deletions
@ -1 +0,0 @@ |
|||||
unity/Packages/Grpc.Tools.2.33.1/tools/windows_x64/protoc.exe -I protobuf --csharp_out=unity/Assets/Scripts/grpc --grpc_out=unity/Assets/Scripts/grpc --plugin=protoc-gen-grpc=unity/Packages/Grpc.Tools.2.33.1/tools/windows_x64/grpc_csharp_plugin.exe $(ls | grep *.proto) |
|
||||
@ -1,56 +1,56 @@ |
|||||
{ |
{ |
||||
"files.exclude": |
"files.exclude": |
||||
{ |
{ |
||||
"**/.DS_Store":true, |
// "**/.DS_Store":true, |
||||
"**/.git":true, |
// "**/.git":true, |
||||
"**/.gitignore":true, |
// "**/.gitignore":true, |
||||
"**/.gitmodules":true, |
// "**/.gitmodules":true, |
||||
"**/*.booproj":true, |
// "**/*.booproj":true, |
||||
"**/*.pidb":true, |
// "**/*.pidb":true, |
||||
"**/*.suo":true, |
// "**/*.suo":true, |
||||
"**/*.user":true, |
// "**/*.user":true, |
||||
"**/*.userprefs":true, |
// "**/*.userprefs":true, |
||||
"**/*.unityproj":true, |
// "**/*.unityproj":true, |
||||
"**/*.dll":true, |
// "**/*.dll":true, |
||||
"**/*.exe":true, |
// "**/*.exe":true, |
||||
"**/*.pdf":true, |
// "**/*.pdf":true, |
||||
"**/*.mid":true, |
// "**/*.mid":true, |
||||
"**/*.midi":true, |
// "**/*.midi":true, |
||||
"**/*.wav":true, |
// "**/*.wav":true, |
||||
"**/*.gif":true, |
// "**/*.gif":true, |
||||
"**/*.ico":true, |
// "**/*.ico":true, |
||||
"**/*.jpg":true, |
// "**/*.jpg":true, |
||||
"**/*.jpeg":true, |
// "**/*.jpeg":true, |
||||
"**/*.png":true, |
// "**/*.png":true, |
||||
"**/*.psd":true, |
// "**/*.psd":true, |
||||
"**/*.tga":true, |
// "**/*.tga":true, |
||||
"**/*.tif":true, |
// "**/*.tif":true, |
||||
"**/*.tiff":true, |
// "**/*.tiff":true, |
||||
"**/*.3ds":true, |
// "**/*.3ds":true, |
||||
"**/*.3DS":true, |
// "**/*.3DS":true, |
||||
"**/*.fbx":true, |
// "**/*.fbx":true, |
||||
"**/*.FBX":true, |
// "**/*.FBX":true, |
||||
"**/*.lxo":true, |
// "**/*.lxo":true, |
||||
"**/*.LXO":true, |
// "**/*.LXO":true, |
||||
"**/*.ma":true, |
// "**/*.ma":true, |
||||
"**/*.MA":true, |
// "**/*.MA":true, |
||||
"**/*.obj":true, |
// "**/*.obj":true, |
||||
"**/*.OBJ":true, |
// "**/*.OBJ":true, |
||||
"**/*.asset":true, |
// "**/*.asset":true, |
||||
"**/*.cubemap":true, |
// "**/*.cubemap":true, |
||||
"**/*.flare":true, |
// "**/*.flare":true, |
||||
"**/*.mat":true, |
// "**/*.mat":true, |
||||
"**/*.meta":true, |
// "**/*.meta":true, |
||||
"**/*.prefab":true, |
// "**/*.prefab":true, |
||||
"**/*.unity":true, |
// "**/*.unity":true, |
||||
"build/":true, |
// "build/":true, |
||||
"Build/":true, |
// "Build/":true, |
||||
"Library/":true, |
// "Library/":true, |
||||
"library/":true, |
// "library/":true, |
||||
"obj/":true, |
// "obj/":true, |
||||
"Obj/":true, |
// "Obj/":true, |
||||
"ProjectSettings/":true, |
// "ProjectSettings/":true, |
||||
"temp/":true, |
// "temp/":true, |
||||
"Temp/":true |
// "Temp/":true |
||||
} |
} |
||||
} |
} |
||||
@ -1,5 +1,5 @@ |
|||||
fileFormatVersion: 2 |
fileFormatVersion: 2 |
||||
guid: bce749003a0bdadb19f6ed8515954331 |
guid: 8cfb1604c51a61a269b6e06bedd43ade |
||||
folderAsset: yes |
folderAsset: yes |
||||
DefaultImporter: |
DefaultImporter: |
||||
externalObjects: {} |
externalObjects: {} |
||||
@ -0,0 +1,102 @@ |
|||||
|
// C# example.
|
||||
|
using UnityEditor; |
||||
|
using UnityEngine; |
||||
|
using System.Runtime.InteropServices; |
||||
|
using System.IO; |
||||
|
using System.Diagnostics; |
||||
|
using System; |
||||
|
|
||||
|
public class ScriptBatch |
||||
|
{ |
||||
|
[MenuItem("Protobuf/Build C# GRPC connecting code")] |
||||
|
public static void BuildGRPC() |
||||
|
{ |
||||
|
string arch = null; |
||||
|
if (RuntimeInformation.ProcessArchitecture == Architecture.Arm || RuntimeInformation.ProcessArchitecture == Architecture.X86) |
||||
|
{ |
||||
|
arch = "x86"; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
arch = "x64"; |
||||
|
} |
||||
|
string protoc = null; |
||||
|
string plugin = null; |
||||
|
string basePath = Application.dataPath.Substring(0, Application.dataPath.Length - "/Assets".Length); |
||||
|
string protobufPath = Path.Combine(Application.dataPath.Substring(0, Application.dataPath.Length - "/unity/Assets".Length), "protobuf"); |
||||
|
string outDir = Path.Combine(Application.dataPath, "Scripts", "grpc"); |
||||
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) |
||||
|
{ |
||||
|
protoc = basePath + "/Packages/Grpc.Tools.2.33.1/tools/linux_" + arch + "/protoc"; |
||||
|
plugin = basePath + "/Packages/Grpc.Tools.2.33.1/tools/linux_" + arch + "/grpc_csharp_plugin"; |
||||
|
} |
||||
|
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) |
||||
|
{ |
||||
|
protoc = basePath + "\\Packages\\Grpc.Tools.2.33.1\\tools\\windows_" + arch + "\\protoc.exe"; |
||||
|
plugin = basePath + "\\Packages\\Grpc.Tools.2.33.1\\tools\\windows_" + arch + "\\grpc_csharp_plugin.exe"; |
||||
|
} |
||||
|
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) |
||||
|
{ |
||||
|
protoc = basePath + "/Packages/Grpc.Tools.2.33.1/tools/macosx_" + arch + "/protoc"; |
||||
|
plugin = basePath + "/Packages/Grpc.Tools.2.33.1/tools/macosx_" + arch + "/grpc_csharp_plugin"; |
||||
|
} |
||||
|
|
||||
|
UnityEngine.Debug.Log(protoc); |
||||
|
UnityEngine.Debug.Log(plugin); |
||||
|
|
||||
|
// // For the example
|
||||
|
// const string ex1 = "C:\\";
|
||||
|
// const string ex2 = "C:\\Dir";
|
||||
|
|
||||
|
// // Use ProcessStartInfo class
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
try{ |
||||
|
var protoFiles = Directory.EnumerateFiles(protobufPath, "*.proto"); |
||||
|
|
||||
|
foreach (string currentFile in protoFiles) |
||||
|
{ |
||||
|
compile_file(protoc, plugin, protobufPath, outDir, currentFile); |
||||
|
} |
||||
|
} catch (Exception e) { |
||||
|
UnityEngine.Debug.LogException(e); |
||||
|
} |
||||
|
|
||||
|
// try
|
||||
|
// {
|
||||
|
// // Start the process with the info we specified.
|
||||
|
// // Call WaitForExit and then the using statement will close.
|
||||
|
// using (Process exeProcess = Process.Start(startInfo))
|
||||
|
// {
|
||||
|
// exeProcess.WaitForExit();
|
||||
|
// }
|
||||
|
// }
|
||||
|
// catch
|
||||
|
// {
|
||||
|
// // Log error.
|
||||
|
// }
|
||||
|
} |
||||
|
|
||||
|
public static void compile_file(string protoc, string plugin, string protobufPath, string outDir, string file) { |
||||
|
// -I protobuf --csharp_out=unity/Assets/Scripts/grpc --grpc_out=unity/Assets/Scripts/grpc --plugin=protoc-gen-grpc=unity/Packages/Grpc.Tools.2.33.1/tools/linux_x64/grpc_csharp_plugin file
|
||||
|
|
||||
|
Process myProcess = new Process(); |
||||
|
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; |
||||
|
myProcess.StartInfo.CreateNoWindow = true; |
||||
|
myProcess.StartInfo.UseShellExecute = false; |
||||
|
myProcess.StartInfo.FileName = protoc; |
||||
|
// string path = "C:\\Users\\Brian\\Desktop\\testFile.bat";
|
||||
|
myProcess.StartInfo.Arguments = $"-I \"{protobufPath}\" --csharp_out=\"{outDir}\" --grpc_out=\"{outDir}\" --plugin=protoc-gen-grpc=\"{plugin}\" \"{file}\""; |
||||
|
myProcess.EnableRaisingEvents = true; |
||||
|
myProcess.StartInfo.RedirectStandardError = true; |
||||
|
myProcess.Start(); |
||||
|
myProcess.WaitForExit(); |
||||
|
if (myProcess.ExitCode != 0) { |
||||
|
throw new IOException($"Protoc error: {myProcess.StandardError.ReadToEnd()}"); |
||||
|
}else{ |
||||
|
UnityEngine.Debug.Log($"Compiled {file}"); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: d503170ae4972ff3db5f76af29a9d5d0 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
||||
@ -1,5 +1,5 @@ |
|||||
fileFormatVersion: 2 |
fileFormatVersion: 2 |
||||
guid: 4c60b03ea1edf5b2cb00c10be02d2695 |
guid: 9c89fa53a27731afa83aa08718530381 |
||||
folderAsset: yes |
folderAsset: yes |
||||
DefaultImporter: |
DefaultImporter: |
||||
externalObjects: {} |
externalObjects: {} |
||||
Binary file not shown.
@ -1,5 +1,5 @@ |
|||||
fileFormatVersion: 2 |
fileFormatVersion: 2 |
||||
guid: adf15f0bfc98d0068b4c00bc8d2ff4a7 |
guid: e9f801151b80bd03399e2ed139b47e48 |
||||
PluginImporter: |
PluginImporter: |
||||
externalObjects: {} |
externalObjects: {} |
||||
serializedVersion: 2 |
serializedVersion: 2 |
||||
@ -1,5 +1,5 @@ |
|||||
fileFormatVersion: 2 |
fileFormatVersion: 2 |
||||
guid: 4893c5261f7831e6f8faff3aa905326a |
guid: 56ac33eabace70554b7cdf28394f660c |
||||
TextScriptImporter: |
TextScriptImporter: |
||||
externalObjects: {} |
externalObjects: {} |
||||
userData: |
userData: |
||||
@ -1,153 +0,0 @@ |
|||||
{ |
|
||||
"runtimeTarget": { |
|
||||
"name": ".NETStandard,Version=v2.0/", |
|
||||
"signature": "" |
|
||||
}, |
|
||||
"compilationOptions": {}, |
|
||||
"targets": { |
|
||||
".NETStandard,Version=v2.0": {}, |
|
||||
".NETStandard,Version=v2.0/": { |
|
||||
"Google.Protobuf/3.13.0": { |
|
||||
"dependencies": { |
|
||||
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.0", |
|
||||
"Microsoft.SourceLink.GitHub": "1.0.0", |
|
||||
"NETStandard.Library": "2.0.3", |
|
||||
"System.Memory": "4.5.3", |
|
||||
"System.Runtime.CompilerServices.Unsafe": "4.5.2" |
|
||||
}, |
|
||||
"runtime": { |
|
||||
"Google.Protobuf.dll": {} |
|
||||
} |
|
||||
}, |
|
||||
"Microsoft.Build.Tasks.Git/1.0.0": {}, |
|
||||
"Microsoft.NETCore.Platforms/1.1.0": {}, |
|
||||
"Microsoft.NETFramework.ReferenceAssemblies/1.0.0": {}, |
|
||||
"Microsoft.SourceLink.Common/1.0.0": {}, |
|
||||
"Microsoft.SourceLink.GitHub/1.0.0": { |
|
||||
"dependencies": { |
|
||||
"Microsoft.Build.Tasks.Git": "1.0.0", |
|
||||
"Microsoft.SourceLink.Common": "1.0.0" |
|
||||
} |
|
||||
}, |
|
||||
"NETStandard.Library/2.0.3": { |
|
||||
"dependencies": { |
|
||||
"Microsoft.NETCore.Platforms": "1.1.0" |
|
||||
} |
|
||||
}, |
|
||||
"System.Buffers/4.4.0": { |
|
||||
"runtime": { |
|
||||
"lib/netstandard2.0/System.Buffers.dll": { |
|
||||
"assemblyVersion": "4.0.2.0", |
|
||||
"fileVersion": "4.6.25519.3" |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"System.Memory/4.5.3": { |
|
||||
"dependencies": { |
|
||||
"System.Buffers": "4.4.0", |
|
||||
"System.Numerics.Vectors": "4.4.0", |
|
||||
"System.Runtime.CompilerServices.Unsafe": "4.5.2" |
|
||||
}, |
|
||||
"runtime": { |
|
||||
"lib/netstandard2.0/System.Memory.dll": { |
|
||||
"assemblyVersion": "4.0.1.1", |
|
||||
"fileVersion": "4.6.27617.2" |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"System.Numerics.Vectors/4.4.0": { |
|
||||
"runtime": { |
|
||||
"lib/netstandard2.0/System.Numerics.Vectors.dll": { |
|
||||
"assemblyVersion": "4.1.3.0", |
|
||||
"fileVersion": "4.6.25519.3" |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"System.Runtime.CompilerServices.Unsafe/4.5.2": { |
|
||||
"runtime": { |
|
||||
"lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": { |
|
||||
"assemblyVersion": "4.0.4.1", |
|
||||
"fileVersion": "4.0.0.0" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
"libraries": { |
|
||||
"Google.Protobuf/3.13.0": { |
|
||||
"type": "project", |
|
||||
"serviceable": false, |
|
||||
"sha512": "" |
|
||||
}, |
|
||||
"Microsoft.Build.Tasks.Git/1.0.0": { |
|
||||
"type": "package", |
|
||||
"serviceable": true, |
|
||||
"sha512": "sha512-z2fpmmt+1Jfl+ZnBki9nSP08S1/tbEOxFdsK1rSR+LBehIJz1Xv9/6qOOoGNqlwnAGGVGis1Oj6S8Kt9COEYlQ==", |
|
||||
"path": "microsoft.build.tasks.git/1.0.0", |
|
||||
"hashPath": "microsoft.build.tasks.git.1.0.0.nupkg.sha512" |
|
||||
}, |
|
||||
"Microsoft.NETCore.Platforms/1.1.0": { |
|
||||
"type": "package", |
|
||||
"serviceable": true, |
|
||||
"sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", |
|
||||
"path": "microsoft.netcore.platforms/1.1.0", |
|
||||
"hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" |
|
||||
}, |
|
||||
"Microsoft.NETFramework.ReferenceAssemblies/1.0.0": { |
|
||||
"type": "package", |
|
||||
"serviceable": true, |
|
||||
"sha512": "sha512-7D2TMufjGiowmt0E941kVoTIS+GTNzaPopuzM1/1LSaJAdJdBrVP0SkZW7AgDd0a2U1DjsIeaKG1wxGVBNLDMw==", |
|
||||
"path": "microsoft.netframework.referenceassemblies/1.0.0", |
|
||||
"hashPath": "microsoft.netframework.referenceassemblies.1.0.0.nupkg.sha512" |
|
||||
}, |
|
||||
"Microsoft.SourceLink.Common/1.0.0": { |
|
||||
"type": "package", |
|
||||
"serviceable": true, |
|
||||
"sha512": "sha512-G8DuQY8/DK5NN+3jm5wcMcd9QYD90UV7MiLmdljSJixi3U/vNaeBKmmXUqI4DJCOeWizIUEh4ALhSt58mR+5eg==", |
|
||||
"path": "microsoft.sourcelink.common/1.0.0", |
|
||||
"hashPath": "microsoft.sourcelink.common.1.0.0.nupkg.sha512" |
|
||||
}, |
|
||||
"Microsoft.SourceLink.GitHub/1.0.0": { |
|
||||
"type": "package", |
|
||||
"serviceable": true, |
|
||||
"sha512": "sha512-aZyGyGg2nFSxix+xMkPmlmZSsnGQ3w+mIG23LTxJZHN+GPwTQ5FpPgDo7RMOq+Kcf5D4hFWfXkGhoGstawX13Q==", |
|
||||
"path": "microsoft.sourcelink.github/1.0.0", |
|
||||
"hashPath": "microsoft.sourcelink.github.1.0.0.nupkg.sha512" |
|
||||
}, |
|
||||
"NETStandard.Library/2.0.3": { |
|
||||
"type": "package", |
|
||||
"serviceable": true, |
|
||||
"sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", |
|
||||
"path": "netstandard.library/2.0.3", |
|
||||
"hashPath": "netstandard.library.2.0.3.nupkg.sha512" |
|
||||
}, |
|
||||
"System.Buffers/4.4.0": { |
|
||||
"type": "package", |
|
||||
"serviceable": true, |
|
||||
"sha512": "sha512-AwarXzzoDwX6BgrhjoJsk6tUezZEozOT5Y9QKF94Gl4JK91I4PIIBkBco9068Y9/Dra8Dkbie99kXB8+1BaYKw==", |
|
||||
"path": "system.buffers/4.4.0", |
|
||||
"hashPath": "system.buffers.4.4.0.nupkg.sha512" |
|
||||
}, |
|
||||
"System.Memory/4.5.3": { |
|
||||
"type": "package", |
|
||||
"serviceable": true, |
|
||||
"sha512": "sha512-3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", |
|
||||
"path": "system.memory/4.5.3", |
|
||||
"hashPath": "system.memory.4.5.3.nupkg.sha512" |
|
||||
}, |
|
||||
"System.Numerics.Vectors/4.4.0": { |
|
||||
"type": "package", |
|
||||
"serviceable": true, |
|
||||
"sha512": "sha512-UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==", |
|
||||
"path": "system.numerics.vectors/4.4.0", |
|
||||
"hashPath": "system.numerics.vectors.4.4.0.nupkg.sha512" |
|
||||
}, |
|
||||
"System.Runtime.CompilerServices.Unsafe/4.5.2": { |
|
||||
"type": "package", |
|
||||
"serviceable": true, |
|
||||
"sha512": "sha512-wprSFgext8cwqymChhrBLu62LMg/1u92bU+VOwyfBimSPVFXtsNqEWC92Pf9ofzJFlk4IHmJA75EDJn1b2goAQ==", |
|
||||
"path": "system.runtime.compilerservices.unsafe/4.5.2", |
|
||||
"hashPath": "system.runtime.compilerservices.unsafe.4.5.2.nupkg.sha512" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,7 +0,0 @@ |
|||||
fileFormatVersion: 2 |
|
||||
guid: c9978bb674bbf9da1bf72d1b498e5038 |
|
||||
TextScriptImporter: |
|
||||
externalObjects: {} |
|
||||
userData: |
|
||||
assetBundleName: |
|
||||
assetBundleVariant: |
|
||||
Binary file not shown.
Loading…
Reference in new issue