Files
Continentis/Assets/UMod/Examples/ExampleScripts/Ex12_LoadModAsyncProgress.cs
SoulliesOfficial 9b1b5ca93f initial
2025-10-03 00:02:43 -04:00

54 lines
1.7 KiB
C#

using UnityEngine;
using System.Collections;
using UMod;
using System;
namespace UMod.Example
{
public class Ex12_LoadModAsyncProgress : MonoBehaviour
{
// The path to the mod
public string modPath = "C:/Mods/Test Mod";
private IEnumerator Start()
{
// We need to specify the location of the mod using the 'ModPath' class.
Uri path = new Uri(modPath);
// Create a mod load request
ModAsyncOperation<ModHost> request = Mod.LoadAsync(path);
// Wait for the load to complete by polling.
// This allows us to access the current progress value of the load and do something with it.
while (request.IsDone == false)
{
// Get the current progress of the request
DisplayLoadingProgress(request.Progress);
// Wait for the next frame
yield return null;
}
// Check for success
if (request.IsSuccessful == true)
{
// The mod is now loaded
ExampleUtil.Log(this, "Mod Loaded!");
}
else
{
ExampleUtil.LogError(this, "Failed to load the mod");
// Print the error code to the console
ExampleUtil.LogError(this, request.Status);
}
}
private void DisplayLoadingProgress(float progress)
{
// Normally you whould update a UI progress bar or similar but for this example we will simply print the value to the console.
ExampleUtil.Log(this, string.Format("Loading Progress = {0}", progress));
}
}
}