mirror of
https://github.com/MrUnknownDE/examples-image-loading.git
synced 2026-04-17 13:53:51 +02:00
Refactors variables, functionality still working
This commit is contained in:
@@ -10,7 +10,7 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
|
||||
m_Name: FrameDataLoader
|
||||
m_Name: SlideshowFrame
|
||||
m_EditorClassIdentifier:
|
||||
serializedUdonProgramAsset: {fileID: 11400000, guid: 2945372477ec6354d804691fd1e55d70,
|
||||
type: 2}
|
||||
@@ -21,7 +21,7 @@ MonoBehaviour:
|
||||
compiledVersion: 2
|
||||
behaviourSyncMode: 0
|
||||
hasInteractEvent: 0
|
||||
scriptID: 2487633955665927238
|
||||
scriptID: -7774693031578337865
|
||||
serializationData:
|
||||
SerializedFormat: 2
|
||||
SerializedBytes:
|
||||
@@ -44,19 +44,19 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 11
|
||||
Data: 10
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: rgbUrl
|
||||
Data: imageUrls
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: rgbUrl
|
||||
Data: imageUrls
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 7
|
||||
Data: 3|System.RuntimeType, mscorlib
|
||||
@@ -536,19 +536,19 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: _downloadsComplete
|
||||
Data: _textures
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 29|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: _downloadsComplete
|
||||
Data: _textures
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 7
|
||||
Data: 30|System.RuntimeType, mscorlib
|
||||
- Name:
|
||||
Entry: 1
|
||||
Data: System.Boolean[], mscorlib
|
||||
Data: UnityEngine.Texture2D[], UnityEngine.CoreModule
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
@@ -585,60 +585,6 @@ MonoBehaviour:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: _textures
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 32|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: _textures
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 7
|
||||
Data: 33|System.RuntimeType, mscorlib
|
||||
- Name:
|
||||
Entry: 1
|
||||
Data: UnityEngine.Texture2D[], UnityEngine.CoreModule
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name: <SystemType>k__BackingField
|
||||
Entry: 9
|
||||
Data: 33
|
||||
- Name: <SyncMode>k__BackingField
|
||||
Entry: 7
|
||||
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||
- Name:
|
||||
Entry: 6
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name: <IsSerialized>k__BackingField
|
||||
Entry: 5
|
||||
Data: false
|
||||
- Name: _fieldAttributes
|
||||
Entry: 7
|
||||
Data: 34|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 0
|
||||
- Name:
|
||||
Entry: 13
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 13
|
||||
Data:
|
||||
@@ -1,15 +1,15 @@
|
||||
using UdonSharp;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UI;
|
||||
using VRC.SDK3.Image;
|
||||
using VRC.SDK3.StringLoading;
|
||||
using VRC.SDKBase;
|
||||
using VRC.Udon.Common.Interfaces;
|
||||
|
||||
public class FrameDataLoader : UdonSharpBehaviour
|
||||
public class SlideshowFrame : UdonSharpBehaviour
|
||||
{
|
||||
|
||||
public VRCUrl[] rgbUrl;
|
||||
public VRCUrl[] imageUrls;
|
||||
public VRCUrl stringUrl;
|
||||
public new Renderer renderer;
|
||||
public Text field;
|
||||
@@ -20,7 +20,6 @@ public class FrameDataLoader : UdonSharpBehaviour
|
||||
private VRCImageDownloader _imageDownloader;
|
||||
private IUdonEventReceiver udonEventReceiver;
|
||||
private string[] _captions = new string[0];
|
||||
private bool[] _downloadsComplete;
|
||||
private Texture2D[] _textures;
|
||||
|
||||
void Start()
|
||||
@@ -29,8 +28,8 @@ public class FrameDataLoader : UdonSharpBehaviour
|
||||
udonEventReceiver = (IUdonEventReceiver)this;
|
||||
|
||||
// Track which downloads have been completed already
|
||||
_downloadsComplete = new bool[rgbUrl.Length];
|
||||
_textures = new Texture2D[rgbUrl.Length];
|
||||
// _downloadsComplete = new bool[rgbUrl.Length];
|
||||
_textures = new Texture2D[imageUrls.Length];
|
||||
|
||||
// Construct Image Downloader to reuse
|
||||
_imageDownloader = new VRCImageDownloader();
|
||||
@@ -49,17 +48,19 @@ public class FrameDataLoader : UdonSharpBehaviour
|
||||
|
||||
private void LoadNext()
|
||||
{
|
||||
_loadedIndex = (int)(Networking.GetServerTimeInMilliseconds() / 1000f / slideDurationSeconds) % rgbUrl.Length;
|
||||
_loadedIndex = (int)(Networking.GetServerTimeInMilliseconds() / 1000f / slideDurationSeconds) % imageUrls.Length;
|
||||
|
||||
if (_downloadsComplete[_loadedIndex])
|
||||
var nextTexture = _textures[_loadedIndex];
|
||||
|
||||
if (nextTexture != null)
|
||||
{
|
||||
renderer.sharedMaterial.mainTexture = _textures[_loadedIndex];
|
||||
renderer.sharedMaterial.mainTexture = nextTexture;
|
||||
}
|
||||
else
|
||||
{
|
||||
var rgbInfo = new TextureInfo();
|
||||
rgbInfo.GenerateMipMaps = true;
|
||||
_imageDownloader.DownloadImage(rgbUrl[_loadedIndex], renderer.material, udonEventReceiver, rgbInfo);
|
||||
_imageDownloader.DownloadImage(imageUrls[_loadedIndex], renderer.material, udonEventReceiver, rgbInfo);
|
||||
}
|
||||
|
||||
// Set caption if one is provided
|
||||
@@ -87,18 +88,16 @@ public class FrameDataLoader : UdonSharpBehaviour
|
||||
{
|
||||
Debug.Log($"Image loaded: {result.SizeInMemoryBytes} bytes.");
|
||||
|
||||
_downloadsComplete[_loadedIndex] = true;
|
||||
_textures[_loadedIndex] = result.Result;
|
||||
}
|
||||
|
||||
public override void OnImageLoadError(IVRCImageDownload result)
|
||||
{
|
||||
Debug.Log($"Image not loaded: {result.Error.ToString()}: {result.ErrorMessage}.");
|
||||
_downloadsComplete[_loadedIndex] = false;
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
_imageDownloader.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user