mirror of
https://github.com/nothke/quality-control.git
synced 2025-08-30 07:23:43 +00:00
Prototyped the object production scheduling.
This commit is contained in:
36
Assets/Scripts/Products/ProductDescription.cs
Normal file
36
Assets/Scripts/Products/ProductDescription.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using Random = UnityEngine.Random;
|
||||
|
||||
[CreateAssetMenu(fileName = "New Product Description", menuName = "Data/Product Description", order = 0)]
|
||||
public class ProductDescription : ScriptableObject
|
||||
{
|
||||
[Serializable]
|
||||
public struct Product
|
||||
{
|
||||
public GameObject Prefab;
|
||||
[Range(0,100)]
|
||||
public int Probability;
|
||||
}
|
||||
|
||||
public Product[] Products;
|
||||
|
||||
public GameObject GetRandomProduct()
|
||||
{
|
||||
float randomValue = Random.value;
|
||||
float sum = 0;
|
||||
|
||||
for (var i = 0; i < Products.Length; i++)
|
||||
{
|
||||
var product = Products[i];
|
||||
|
||||
sum += product.Probability / 100f;
|
||||
if (randomValue <= sum)
|
||||
{
|
||||
return product.Prefab;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user