Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/nixon-voxell/unityutil
- Owner: nixon-voxell
- License: apache-2.0
- Created: 2021-03-02T10:39:44.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-06-14T16:40:23.000Z (over 1 year ago)
- Last Synced: 2024-06-18T09:23:04.842Z (7 months ago)
- Language: C#
- Homepage:
- Size: 396 KB
- Stars: 31
- Watchers: 3
- Forks: 14
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
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!
## 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](./LICENSE) for details.
## References
- https://github.com/dbrizov/NaughtyAttributes