After having had no issue with Random.Range for the last few months, it suddenly has decided to stop working for me.
int random = UnityEngine.Random.Range(1, 4);
Is returning 1, and ONLY 1.
Here’s the full code for context:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class ForgeSprite : TimelineSprite
{
protected static ForgeSprite mForgeSprite;
static string mNextAnimation = "";
Timeline mCommonTimeline = null;
Timeline mFinishTimeline = null;
bool mIsFinished = false;
protected override void Start()
{
base.Start();
Common.hideObject(transform);
mForgeSprite = this;
mCommonTimeline = getTimeline("Forge_Common");
}
public override void Update()
{
if (mNextAnimation != "")
{
if (mCommonTimeline != null && mCommonTimeline.isFinished())
{
int random = UnityEngine.Random.Range(1, 4);
mNextAnimation += random;
mFinishTimeline = getTimeline(mNextAnimation);
mForgeSprite.playAnimation(mNextAnimation);
mNextAnimation = "";
}
}
if (mFinishTimeline != null)
{
if (mFinishTimeline.isFinished())
{
mFinishTimeline = null;
mIsFinished = true;
}
}
base.Update();
}
protected override void OnDestroy()
{
mForgeSprite = null;
base.OnDestroy();
}
public static ForgeSprite getForgeSprite()
{
if (mForgeSprite == null)
{
mForgeSprite = Common.getNewObject("Effects/CutIns/ForgeAnimation").GetComponent<ForgeSprite>();
}
return mForgeSprite;
}
public static void playSuccess()
{
getForgeSprite();
if (mForgeSprite != null)
{
Common.showObject(mForgeSprite.transform);
mForgeSprite.mIsFinished = false;
mForgeSprite.mFinishTimeline = null;
mForgeSprite.playAnimation("Forge_Common");
mNextAnimation = "Forge_Success_" ;
}
}
public static void playFail()
{
getForgeSprite();
if (mForgeSprite != null)
{
Common.showObject(mForgeSprite.transform);
mForgeSprite.mIsFinished = false;
mForgeSprite.mFinishTimeline = null;
mForgeSprite.playAnimation("Forge_Common");
mNextAnimation = "Forge_Miss_";
}
}
public static void load()
{
getForgeSprite();
}
public static bool isPlaying()
{
if (mForgeSprite != null)
{
return mNextAnimation != "" || mForgeSprite.mFinishTimeline != null || mForgeSprite.mIsFinished;
}
return false;
}
public static bool isFinished()
{
if (mForgeSprite != null)
{
return mForgeSprite.mIsFinished;
}
return false;
}
public static void clicked()
{
if (mForgeSprite.mIsFinished)
{
mForgeSprite.mIsFinished = false;
Common.hideObject(mForgeSprite.transform);
}
}
}
Any ideas on what I’m missing here?