save & upload

main
reng 4 months ago
parent e2171a9302
commit 6cbfe9506d
  1. 4
      .gitignore
  2. 19
      Assets/NuGet.config
  3. 23
      Assets/NuGet.config.meta
  4. 8
      Assets/Packages.meta
  5. 1129
      Assets/Scenes/SampleScene.unity
  6. 82
      Assets/Scripts/SaveImage.cs
  7. 40
      Assets/Textures/Postcard Texture.renderTexture
  8. 8
      Assets/Textures/Postcard Texture.renderTexture.meta
  9. 2
      Assets/packages.config
  10. 23
      Assets/packages.config.meta
  11. 23
      Packages/com.ultracombos.upload-aws-s3-main/.github/workflows/publish_to_verdaccio.yml
  12. 8
      Packages/com.ultracombos.upload-aws-s3-main/Editor.meta
  13. 56
      Packages/com.ultracombos.upload-aws-s3-main/Editor/AwsS3UploaderEditor.cs
  14. 11
      Packages/com.ultracombos.upload-aws-s3-main/Editor/AwsS3UploaderEditor.cs.meta
  15. 19
      Packages/com.ultracombos.upload-aws-s3-main/Editor/UltraCombos.AwsS3Uploader.Editor.asmdef
  16. 7
      Packages/com.ultracombos.upload-aws-s3-main/Editor/UltraCombos.AwsS3Uploader.Editor.asmdef.meta
  17. 1
      Packages/com.ultracombos.upload-aws-s3-main/README.md
  18. 7
      Packages/com.ultracombos.upload-aws-s3-main/README.md.meta
  19. 8
      Packages/com.ultracombos.upload-aws-s3-main/Runtime.meta
  20. 134
      Packages/com.ultracombos.upload-aws-s3-main/Runtime/AwsS3Uploader.cs
  21. 11
      Packages/com.ultracombos.upload-aws-s3-main/Runtime/AwsS3Uploader.cs.meta
  22. 16
      Packages/com.ultracombos.upload-aws-s3-main/Runtime/UltraCombos.UploadAwsS3.Runtime.asmdef
  23. 7
      Packages/com.ultracombos.upload-aws-s3-main/Runtime/UltraCombos.UploadAwsS3.Runtime.asmdef.meta
  24. 22
      Packages/com.ultracombos.upload-aws-s3-main/package.json
  25. 7
      Packages/com.ultracombos.upload-aws-s3-main/package.json.meta
  26. 17
      Packages/manifest.json
  27. 119
      Packages/packages-lock.json
  28. 18
      ProjectSettings/PackageManagerSettings.asset
  29. BIN
      SavedImage.png
  30. BIN
      output_20250721_174014.png
  31. BIN
      output_20250721_174124.png
  32. BIN
      output_20250721_174320.png

4
.gitignore vendored

@ -74,4 +74,6 @@ crashlytics-build.properties
# Custom
/RenderOutput/
.vscode
.vscode
output

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</packageSources>
<disabledPackageSources />
<packageSourceCredentials />
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<config>
<add key="packageInstallLocation" value="CustomWithinAssets" />
<add key="repositoryPath" value="./Packages" />
<add key="PackagesConfigDirectoryPath" value="." />
<add key="verbose" value="true" />
<add key="slimRestore" value="true" />
<add key="PreferNetStandardOverNetFramework" value="true" />
</config>
</configuration>

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 6523ac68a1b8b7248a5f943e3ea15d3c
labels:
- NuGetForUnity
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 19474af60b80e414c89159274403d0c0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

@ -1,13 +1,35 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Threading.Tasks;
using Amazon;
using Amazon.S3;
using Amazon.S3.Transfer;
using Amazon.S3.Model;
using UltraCombos.Upload;
[System.Serializable]
public class S3Tag
{
public string key;
public string value;
public static implicit operator Tag(S3Tag t) => new Tag { Key = t.key, Value = t.value };
}
public class SaveImage : MonoBehaviour
{
public Uploader uploader;
public RenderTexture renderTexture;
public string OutputFolder = "output";
// Start is called before the first frame update
void Start()
{
uploader = GetComponent<Uploader>();
}
// Update is called once per frame
@ -16,19 +38,32 @@ public class SaveImage : MonoBehaviour
}
public RenderTexture renderTexture;
public string fileName = "output.png";
public void save()
public void save(string filename)
{
string timestamp = System.DateTime.Now.ToString("yyyyMMdd_HHmmss");
string fileNameWithTimestamp = System.IO.Path.GetFileNameWithoutExtension(fileName) + "_" + timestamp + System.IO.Path.GetExtension(fileName);
if(string.IsNullOrEmpty(filename))
{
Debug.LogError("Filename cannot be null or empty.");
return;
}
Debug.Log("Saving image to: " + filename);
string timestamp = System.DateTime.Now.ToString("yyyyMMdd");
if (!System.IO.Directory.Exists(OutputFolder + "/" + timestamp))
{
System.IO.Directory.CreateDirectory(OutputFolder + "/" + timestamp);
}
SaveRenderTextureToPNG(renderTexture, System.IO.Path.Combine(OutputFolder + "/" + timestamp, filename));
Debug.Log("Image saved to " + filename);
SaveRenderTextureToPNG(renderTexture, fileNameWithTimestamp);
Debug.Log("Image saved to " + fileNameWithTimestamp);
// Optionally, you can also log the full path
string fullPath = System.IO.Path.Combine(Application.persistentDataPath, fileNameWithTimestamp);
Debug.Log("Full path: " + fullPath);
string fullPath = System.IO.Path.Combine(OutputFolder + "/" + timestamp + "/", filename);
Debug.Log("path: " + fullPath);
upload(fullPath);
}
void SaveRenderTextureToPNG(RenderTexture rt, string filePath)
@ -43,7 +78,32 @@ public class SaveImage : MonoBehaviour
byte[] bytes = tex.EncodeToPNG();
System.IO.File.WriteAllBytes(filePath, bytes);
Debug.Log("Saved RenderTexture to PNG at " + filePath+ " with size: " + bytes.Length + " bytes");
RenderTexture.active = currentRT;
Destroy(tex);
}
}
void upload(string filename){
if (uploader != null)
{
uploader.Upload(filename, (response) =>
{
if (response.success)
{
Debug.Log("Upload successful: " + response);
}
else
{
Debug.LogError("Upload failed: " + response);
}
});
}
else
{
Debug.LogError("Uploader is not assigned.");
}
}
}

@ -0,0 +1,40 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!84 &8400000
RenderTexture:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Postcard Texture
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
m_IsAlphaChannelOptional: 0
serializedVersion: 5
m_Width: 1241
m_Height: 1754
m_AntiAliasing: 1
m_MipCount: -1
m_DepthStencilFormat: 94
m_ColorFormat: 8
m_MipMap: 0
m_GenerateMips: 1
m_SRGB: 0
m_UseDynamicScale: 0
m_BindMS: 0
m_EnableCompatibleFormat: 1
m_EnableRandomWrite: 0
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 0
m_MipBias: 0
m_WrapU: 1
m_WrapV: 1
m_WrapW: 1
m_Dimension: 2
m_VolumeDepth: 1
m_ShadowSamplingMode: 2

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 35e8ac38ef95d18419a5a58ab9299adf
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 8400000
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<packages />

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: b35aaee7bdba19747814754a04f98e30
labels:
- NuGetForUnity
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,23 @@
# https://www.notion.so/ultracombos/184580d56c5f4b30b7777fd241b41b48
name: Publish to Verdaccio
on: push
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
lfs: true
- uses: EndBug/version-check@v2
id: check
with:
diff-search: true
token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-node@v3
if: steps.check.outputs.changed == 'true'
with:
always-auth: true
node-version: 16
- run: echo "//verdaccio.ultracombos.net/:_authToken=${{ secrets.VERDACCIO_NPM_AUTH_TOKEN }}" > ~/.npmrc
- run: yarn publish
if: steps.check.outputs.changed == 'true'

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b4adca434b03a6948bed1fd097b798c4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,56 @@
using Amazon;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq.Expressions;
using System.Reflection;
using System.Text.RegularExpressions;
using UltraCombos.Upload;
using UnityEditor;
using UnityEngine;
namespace UltraCombos.Upload
{
[CustomEditor(typeof(AwsS3Uploader))]
public class AwsS3UploaderEditor : UploaderEditor
{
SerializedProperty regionSystemName;
List<RegionEndpoint> regions = new List<RegionEndpoint>();
string[] regionNames;
string[] regionSystemNames;
/*
protected override void GetURLInternal(string filePath, string filePathWithTag, out string url_display, out string url)
{
var uploader = target as AwsS3Uploader;
url_display = uploader.GetURL2(filePathWithTag, false);
url = uploader.GetURL2( filePath, true);
}
*/
protected override void OnEnable()
{
base.OnEnable();
FindProperty(() => regionSystemName);
regions.AddRange(RegionEndpoint.EnumerableAllRegions);
regionNames = new string[regions.Count];
regionSystemNames = new string[regions.Count];
for (int i = 0; i < regionNames.Length; ++i)
{
regionNames[i] = regions[i].DisplayName;
regionSystemNames[i] = regions[i].SystemName;
}
}
protected override void OnInspectorGUIBody()
{
//Region
var choiceIndex = 0;
for (int i = 0; i < regionNames.Length; ++i)
{
if (regionSystemName.stringValue == regionSystemNames[i])
choiceIndex = i;
}
choiceIndex = EditorGUILayout.Popup("Region", choiceIndex, regionNames);
regionSystemName.stringValue = regionSystemNames[choiceIndex];
}
}
}

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: efc2a59b714235447accafdeefef2541
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,19 @@
{
"name": "UltraCombos.AwsS3Uploader.Editor",
"references": [
"GUID:39b5c55a81e192543aa30a689d5a3992",
"GUID:8f470c8270d70f44e95578f473b05009",
"GUID:56859cf09e0a6584c9f5fba33ee63c15"
],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 45ee2d944a3a98147973bc8039d4dbf7
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1 @@
# com.ultracombos.aws-s3-uploader

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: fa29bd3b93de7c943b659d65b11ab255
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f4b6bec11b354d54b870b769d3bae1bd
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,134 @@
using UnityEngine;
using System;
using System.IO;
using System.Threading.Tasks;
using System.Threading;
using Amazon.S3;
using Amazon;
using Amazon.S3.Transfer;
using Amazon.S3.Model;
using System.Collections.Generic;
namespace UltraCombos.Upload
{
[System.Serializable]
public class S3Tag
{
public string key;
public string value;
public static implicit operator Tag(S3Tag t) => new Tag { Key = t.key, Value = t.value };
}
public class AwsS3Uploader : Uploader
{
[SerializeField]
private string regionSystemName = "ap-northeast-2";
public string bucketName = "ultracombos.project";
public bool onlyBucketURL = false;
public List<S3Tag> tags=new List<S3Tag>();
IAmazonS3 s3Client;
#region Monobehaviour
void Start()
{
s3Client = new AmazonS3Client(RegionEndpoint.GetBySystemName(regionSystemName));
}
protected override void OnDestroy()
{
base.OnDestroy();
s3Client?.Dispose();
}
#endregion
protected List<Tag> GetTagSet()
{
List<Tag> tagSet = new List<Tag>();
foreach (var t in tags)
tagSet.Add(t);
return tagSet;
}
#region Upload Protected
protected override async Task<string> Upload(byte[] byteData, string remoteFilePath)
{
MemoryStream ms = new MemoryStream();
ms.Write(byteData, 0, byteData.Length);
ms.Seek(0, SeekOrigin.Begin);
var request = new TransferUtilityUploadRequest()
{
BucketName = bucketName,
InputStream = ms,
StorageClass = S3StorageClass.Standard,
Key = remoteFilePath,
CannedACL = S3CannedACL.PublicRead,
TagSet = GetTagSet(),
};
return await UploadAsync(request);
}
protected override async Task<string> Upload(string filePath, string remoteFilePath)
{
Debug.Log("Uploading file: " + filePath+ " to " + remoteFilePath);
var request = new TransferUtilityUploadRequest()
{
BucketName = bucketName,
FilePath = filePath,
StorageClass = S3StorageClass.Standard,
Key = remoteFilePath,
CannedACL = S3CannedACL.PublicRead,
TagSet = GetTagSet(),
};
return await UploadAsync(request);
}
public override string GetHostURL()// (string remoteFilePath, bool escape = true)
{
if (onlyBucketURL)
return $"http://{EscapeURL(bucketName)}";
else
return $"https://s3.{regionSystemName}.amazonaws.com/{EscapeURL(bucketName)}";
}
private async Task<string> UploadAsync(TransferUtilityUploadRequest request)
{
Debug.Log($"Uploading to S3: {request.BucketName}/{request.Key}");
if (s3Client == null)
{
Debug.LogError("S3 client is not initialized.");
return $"{ERR_MSG} S3 client is not initialized.";
}
var timeout_cts = new CancellationTokenSource(TimeSpan.FromSeconds(timeoutSeconds));
var linked_cts = CancellationTokenSource.CreateLinkedTokenSource(timeout_cts.Token, cts.Token);
TransferUtility fileTransferUtility = null;
try
{
fileTransferUtility = new TransferUtility(s3Client);
await fileTransferUtility.UploadAsync(request, linked_cts.Token);
return $"{GetHostURL()}/{EscapeURL(request.Key)}";
}
catch (Exception e)
{
Debug.LogError($"Upload failed: {e.Message}\n{e.StackTrace}");
if(timeout_cts.IsCancellationRequested)
return $"{ERR_MSG} The operation has timed out.";
if (cts.IsCancellationRequested)
return $"{ERR_MSG} AwsS3Uploader was disposed.";
return $"{ERR_MSG} {e.Message}\n{e.StackTrace}";
}
finally
{
try { request?.InputStream.Close(); } catch {}
try { request?.InputStream.Dispose(); } catch {}
try { linked_cts?.Dispose(); } catch {}
try { timeout_cts?.Dispose(); } catch {}
try { fileTransferUtility?.Dispose(); } catch {}
}
}
#endregion
}
}

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: adfb9868b2bba274fb2e49202e8dd91d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,16 @@
{
"name": "UltraCombos.AwsS3Uploader.Runtime",
"rootNamespace": "",
"references": [
"GUID:39b5c55a81e192543aa30a689d5a3992"
],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 56859cf09e0a6584c9f5fba33ee63c15
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,22 @@
{
"name": "com.ultracombos.upload-aws-s3",
"displayName": "Upload AWS S3",
"version": "1.0.22",
"unity": "2019.3",
"description": "AWS S3 Uploader for Unity.",
"keywords": [],
"category": "",
"type": "tool",
"publishConfig": {
"registry": "https://verdaccio.ultracombos.net"
},
"author": {
"name": "Ultra Combos Co., Ltd.",
"email": "tech@ultracombos.com",
"url": "https://ultracombos.com"
},
"dependencies": {
"com.ultracombos.upload": "1.0.24",
"org.nuget.awssdk.s3": "3.7.0"
}
}

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7f1d1fd9b5ef4d34591d30f534cf8b20
PackageManifestImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,6 +1,8 @@
{
"dependencies": {
"com.github-glitchenzo.nugetforunity": "4.5.0",
"com.ultracombos.control-panel": "https://github.com/UltraCombos/com.ultracombos.control-panel.git",
"com.ultracombos.upload": "https://github.com/UltraCombos/com.ultracombos.upload.git",
"com.unity.collab-proxy": "2.8.2",
"com.unity.feature.2d": "2.0.1",
"com.unity.ide.rider": "3.0.36",
@ -13,6 +15,7 @@
"com.unity.visualscripting": "1.9.4",
"jp.keijiro.klak.spout": "https://github.com/UltraCombos/KlakSpout.git?path=Packages/jp.keijiro.klak.spout#main",
"jp.keijiro.osc-jack": "2.0.0",
"org.nuget.awssdk.s3": "4.0.6",
"com.unity.modules.ai": "1.0.0",
"com.unity.modules.androidjni": "1.0.0",
"com.unity.modules.animation": "1.0.0",
@ -59,6 +62,20 @@
"scopes": [
"com.ultracombos"
]
},
{
"name": "package.openupm.com",
"url": "https://package.openupm.com",
"scopes": [
"com.github-glitchenzo.nugetforunity"
]
},
{
"name": "Unity NuGet",
"url": "https://unitynuget-registry.openupm.com",
"scopes": [
"org.nuget"
]
}
]
}

@ -1,5 +1,12 @@
{
"dependencies": {
"com.github-glitchenzo.nugetforunity": {
"version": "4.5.0",
"depth": 0,
"source": "registry",
"dependencies": {},
"url": "https://package.openupm.com"
},
"com.ultracombos.control-panel": {
"version": "https://github.com/UltraCombos/com.ultracombos.control-panel.git",
"depth": 0,
@ -9,6 +16,22 @@
},
"hash": "70a6c25d47b77fb145bc16eafd27b22c8610dcee"
},
"com.ultracombos.upload": {
"version": "https://github.com/UltraCombos/com.ultracombos.upload.git",
"depth": 0,
"source": "git",
"dependencies": {},
"hash": "e8353d176da003c983faba6c4408b4519038a141"
},
"com.ultracombos.upload-aws-s3": {
"version": "file:com.ultracombos.upload-aws-s3-main",
"depth": 0,
"source": "embedded",
"dependencies": {
"com.ultracombos.upload": "1.0.24",
"org.nuget.awssdk.s3": "3.7.0"
}
},
"com.unity.2d.animation": {
"version": "9.2.0",
"depth": 1,
@ -273,6 +296,102 @@
"dependencies": {},
"url": "https://registry.npmjs.com"
},
"org.nuget.awssdk.core": {
"version": "4.0.0-16",
"depth": 1,
"source": "registry",
"dependencies": {
"org.nuget.microsoft.bcl.asyncinterfaces": "8.0.0",
"org.nuget.system.buffers": "4.5.1",
"org.nuget.system.memory": "4.5.5",
"org.nuget.system.text.json": "8.0.5"
},
"url": "https://unitynuget-registry.openupm.com"
},
"org.nuget.awssdk.s3": {
"version": "4.0.6",
"depth": 0,
"source": "registry",
"dependencies": {
"org.nuget.awssdk.core": "4.0.0-16"
},
"url": "https://unitynuget-registry.openupm.com"
},
"org.nuget.microsoft.bcl.asyncinterfaces": {
"version": "8.0.0",
"depth": 2,
"source": "registry",
"dependencies": {
"org.nuget.system.threading.tasks.extensions": "4.5.4"
},
"url": "https://unitynuget-registry.openupm.com"
},
"org.nuget.system.buffers": {
"version": "4.5.1",
"depth": 2,
"source": "registry",
"dependencies": {},
"url": "https://unitynuget-registry.openupm.com"
},
"org.nuget.system.memory": {
"version": "4.5.5",
"depth": 2,
"source": "registry",
"dependencies": {
"org.nuget.system.buffers": "4.5.1",
"org.nuget.system.numerics.vectors": "4.4.0",
"org.nuget.system.runtime.compilerservices.unsafe": "4.5.3"
},
"url": "https://unitynuget-registry.openupm.com"
},
"org.nuget.system.numerics.vectors": {
"version": "4.4.0",
"depth": 3,
"source": "registry",
"dependencies": {},
"url": "https://unitynuget-registry.openupm.com"
},
"org.nuget.system.runtime.compilerservices.unsafe": {
"version": "6.0.0",
"depth": 3,
"source": "registry",
"dependencies": {},
"url": "https://unitynuget-registry.openupm.com"
},
"org.nuget.system.text.encodings.web": {
"version": "8.0.0",
"depth": 3,
"source": "registry",
"dependencies": {
"org.nuget.system.buffers": "4.5.1",
"org.nuget.system.memory": "4.5.5",
"org.nuget.system.runtime.compilerservices.unsafe": "6.0.0"
},
"url": "https://unitynuget-registry.openupm.com"
},
"org.nuget.system.text.json": {
"version": "8.0.5",
"depth": 2,
"source": "registry",
"dependencies": {
"org.nuget.microsoft.bcl.asyncinterfaces": "8.0.0",
"org.nuget.system.text.encodings.web": "8.0.0",
"org.nuget.system.buffers": "4.5.1",
"org.nuget.system.memory": "4.5.5",
"org.nuget.system.runtime.compilerservices.unsafe": "6.0.0",
"org.nuget.system.threading.tasks.extensions": "4.5.4"
},
"url": "https://unitynuget-registry.openupm.com"
},
"org.nuget.system.threading.tasks.extensions": {
"version": "4.5.4",
"depth": 3,
"source": "registry",
"dependencies": {
"org.nuget.system.runtime.compilerservices.unsafe": "4.5.3"
},
"url": "https://unitynuget-registry.openupm.com"
},
"com.unity.modules.ai": {
"version": "1.0.0",
"depth": 0,

@ -42,7 +42,23 @@ MonoBehaviour:
m_IsDefault: 0
m_Capabilities: 0
m_ConfigSource: 4
m_UserSelectedRegistryName: Ultra Combos
- m_Id: scoped:project:package.openupm.com
m_Name: package.openupm.com
m_Url: https://package.openupm.com
m_Scopes:
- com.github-glitchenzo.nugetforunity
m_IsDefault: 0
m_Capabilities: 0
m_ConfigSource: 4
- m_Id: scoped:project:Unity NuGet
m_Name: Unity NuGet
m_Url: https://unitynuget-registry.openupm.com
m_Scopes:
- org.nuget
m_IsDefault: 0
m_Capabilities: 0
m_ConfigSource: 4
m_UserSelectedRegistryName: Unity NuGet
m_UserAddingNewScopedRegistry: 0
m_RegistryInfoDraft:
m_Modified: 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 460 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 349 KiB

Loading…
Cancel
Save