Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nixon-voxell/unityutil

Utilities for Unity.
https://github.com/nixon-voxell/unityutil

Last synced: about 2 months ago
JSON representation

Utilities for Unity.

Awesome Lists containing this project

README

        

# Unity Utilities

This package is where all the utility functions as well as all the custom inspector drawer code lives.

- [Unity Utilities](#unity-utilities)
- [Installation](#installation)
- [Custom Property Attribute](#custom-property-attribute)
- [Utilities](#utilities)
- [MathUtil](#mathutil)
- [Under the hood](#under-the-hood)
- [Support the project!](#support-the-project)
- [Join the community!](#join-the-community)
- [License](#license)
- [References](#references)

## Installation

There are no external dependencies for this package.

1. Clone this repository into your `Packages` folder.
2. And you are ready to go!

## Custom Property Attribute

```cs
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!");
}
```

![CustomPropertyAttribute](./Pictures~/CustomPropertyAttribute.png)

## Utilities

### MathUtil

```cs
using UnityEngine;
using Voxell.Mathx;

// generate array [0, 1, 2, 3, 4]
int[] shuffledArray = MathUtil.GenerateSeqArray(5);
// shuffles array
MathUtil.ShuffleArray(ref shuffledArray, 3);
Debug.Log(shuffledArray);

```
### Under the hood

```cs
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!


patreon


kofi

## Join the community!


discord


discord

## 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](./LICENSE) for details.

## References

- https://github.com/dbrizov/NaughtyAttributes