- Home /
Code works in editor, however not in build... C#
As the title says, I have code below that will work in the editor however when it comes to build, it causes an error somewhere after the instantiation which is located in the for loop within the coroutine Fire. On FireMode.auto, _3rd and _2rd they only instantiate once meaning that the loop has a forced break if that helps at all.
using UnityEngine;
using System.Collections;
public class FireParticles : MonoBehaviour {
public enum FireMode { Single, Auto, _3rd, _2rd}
public FireMode fireMode;
public int RPM = 1000;
int bumpRand = 200;
float RPS;
int burst;
bool cycle;
int fireAmt;
public Object particles;
void Update () {
if(fireMode == FireMode._3rd)
{
burst = 3;
}
else if(fireMode == FireMode._2rd)
{
burst = 2;
}
else
{
burst = 1;
}
if ((Input.GetMouseButtonDown(0) || ((fireMode == FireMode.Auto && Input.GetMouseButton(0))) && !cycle)) {
cycle = true;
RPS = (1f / (RPM / 60f));
StartCoroutine(Fire());
}
}
IEnumerator Fire ()
{
for (int i = 0; i < burst; i++)
{
Instantiate(particles, transform.position, transform.rotation);
fireAmt = fireAmt + 1; // debug
print(fireAmt); // debug
yield return new WaitForSeconds(RPS / Time.timeScale);
}
cycle = false;
}
}
This is the error that pops up; usually when I see a NullRefrenceException I know what to kinda look for, but this is one has me confused. Especially when it works fine in editor but not build.
NullRefrenceException: Object refrence not set to an instance of an object
> FireParticles+<Fire>c_Iterator1.MoveNext()
Any help would be very much appreciated, I'm running Unity 5.3.1 if that has to do with anything and if anyone does have an answer an explanation to where I've gone wrong would be nice.
Cheers,
possibly because you're altering burst
in Update()
and your coroutine is using it as a counter.
what you've done there is all kinds of ugly ;)
you'll probably get the desired results if you pass that counter to the coroutine as a parameter so each new coroutine creates the correct number...
Didn't think of that being a problem however burst
doesn't change without the enum changing. I did modify it to eli$$anonymous$$ate that problem but the problem still purists.
It's just temporary code so ugly is fine for now haha.
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Cant change material texture through C# script 1 Answer
NullReferenceException 1 Answer
Make a laser flickering. 1 Answer