Loading...
114
Game
Hayami-Chan 3D
3 years ago

Working on the hunting AI. I'm using the nodes in the apartment and chances to let #Hayamichan choose a new destination...

Useful c# script is in the article!

#MadeWithUnity #GameDev


With this script you can draw an index based on chances. It's really useful!

PropabilityPool.cs

		
			using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace DonutStudio.Utilities.Propability
{
    /// <summary>
    /// Class to draw a random element from a pool of rates.
    /// </summary>
    public class PropabilityPool
    {
        float[] rates;
        float total;

        /// <summary>
        /// Create an object of the PropabilityPool class with the rates.
        /// </summary>
        /// <param name="_rates">The rates of the single elements.</param>
        public PropabilityPool(float[] _rates)
        {
            rates = _rates;

            UpdateTotal();
        }

        /// <summary>
        /// Draw a random element for a pool of rates. The higher the rate the higher the chance.
        /// </summary>
        /// <returns></returns>
        public int DrawElement()
        {
            float r = Random.Range(0f, total);
            float accumulatedProbability = 0f;

            for (int i = 0; i < rates.Length; i++)
            {
                accumulatedProbability += rates[i];
                if (r <= accumulatedProbability)
                    return i;
            }
            return 0;
        }

        /// <summary>
        /// Change the value of a rate.
        /// </summary>
        /// <param name="index">The index of the rate.</param>
        /// <param name="newRate">The new value of the rate.</param>
        public void ChangeRate(int index, float newRate)
        {
            if (index < 0 && index < rates.Length)
                return;
            rates[index] = newRate;
            UpdateTotal();
        }
        /// <summary>
        /// Change all the rates.
        /// </summary>
        /// <param name="newRates">The rates.</param>
        public void ChangeRates(float[] newRates)
        {
            rates = newRates;
            UpdateTotal();
        }
    
        /// <summary>
        /// Update the total value of all rates
        /// </summary>
        void UpdateTotal()
        {
            total = 0;
            foreach (float f in rates)
                total += f;
        }
    }
}
		
	


8 comments

Loading...

Next up

Working on the endings. You'll have to find them out yourself. The build (and mobile version) will be uploaded asap... show some patience xD

#MadeWithUnity #GameDev #Hayamichan

Can you guess what this could be?

Working hard on the game, so you can play it (hopefully this month).

I think it might not be that scary, but good enough for my first #Horror game

#MadeWithUnity #GameDev #Hayamichan

Don't miss out on the #WitchspireArt competition!

To celebrate Witchspire's demo launch, Envar Games want to see your Witchspire fan art. Enter to win an Amazon gift card!

Complete our quest to enter.

Learn more: https://bit.ly/WitchspireArtCompetition

coming soon

Witchspire is a survival-crafting adventure in a world brimming with magic and peril.

Befriend and battle creatures, and conjure up a sanctuary alongside other witches in co-op or single-player.

Try the Next Fest demo: https://bit.ly/WitchspireSteam

The animations are working!

#MadeWithUnity #GameDev #Hayamichan

Say no more!

I've finally added mobile controls. It took a ton of work to redo the input system, but now I can just export the game for android and everything should work

Don't miss out on the #WitchspireArt competition!

To celebrate Witchspire's demo launch, Envar Games want to see your Witchspire fan art. Enter to win an Amazon gift card!

Complete our quest to enter.

Learn more: https://bit.ly/WitchspireArtCompetition

Yeah, I've built myself a controller and it's so awesome! Just add a few buttons, two joysticks, a microchip and of course some rgb leds. That makes the build complete!

Check out the link to build yourself one too!

#DIY