Unity Utilities
June 13, 2022 ยท View on GitHub
This package is where all the utility functions as well as all the custom inspector drawer code lives.
Installation
There are no external dependencies for this package.
- Clone this repository into your
Packagesfolder. - And you are ready to go!
Custom Property Attribute
using UnityEngine;
using Voxell.Inspector;
public class CustomInspectorTest : MonoBehaviour
{
[Scene]
public string testScene;
[Scene]
public string[] testSceneArray;
[InspectOnly]
public int inspectOnlyInt;
[StreamingAssetFilePath]
public string streamingAssetFilePath;
[StreamingAssetFolderPath]
public string streamingAssetFolderPath;
[Button]
void TestButton() => Debug.Log("TestButton function invoked!");
[Button("Super Button")]
void AnotherTestButton() => Debug.Log("Button with Super Button name pressed!");
}

Utilities
MathUtil
using UnityEngine;
using Voxell.Mathx;
// generate array [0, 1, 2, 3, 4]
int[] shuffledArray = MathUtil.GenerateSeqArray(5);
// shuffles array
MathUtil.ShuffleArray<int>(ref shuffledArray, 3);
Debug.Log(shuffledArray);
Under the hood
using Unity.Mathematics;
// GenerateSeqArray method
int length = 5;
int[] shuffledArray = new int[length];
for (int i=0; i < length; i++) shuffledArray[i] = i;
// ShuffleArray method
for (int i = 0; i < shuffledArray.Length; i++)
{
int randomIdx = UnityEngine.Random.Range(0, shuffledArray.Length);
int tempItem = shuffledArray[randomIdx];
shuffledArray[randomIdx] = shuffledArray[i];
shuffledArray[i] = tempItem;
}
Debug.Log(shuffledArray);
Support the project!
Join the community!
License
This repository as a whole is licensed under the Apache License 2.0. Individual files may have a different, but compatible license.
See license file for details.