- Home /
This question was
closed Mar 07 at 06:20 PM by
Zok_Dev for the following reason:
Repost
Question by
Zok_Dev · Mar 07 at 09:08 AM ·
randomtimereferencinginvokecommunication
Action not triggered after Invoke time passed (Invoke called in different script)
The code should output a random action out of 16 after a editable time. The output should currently only be the random number written in the log but it doesn‘t work. Class 1:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Spawner : MonoBehaviour
{
public GameObject thisObject;
public Funktions funktions;
// Start is called before the first frame update
void Start()
{
funktions = thisObject.GetComponent<Funktions>();
}
// Update is called once per frame
void Update()
{
funktions.DoOnTickTime();
switch(Funktions.randomNumber)
{
case 1:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 2:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 3:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 5:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 6:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 7:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 8:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 9:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 10:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 11:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 12:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 13:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 14:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 15:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
case 16:
Debug.Log(Funktions.randomNumber);
Funktions.randomNumber = 0;
break;
}
}
}
Class2:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class Funktions : MonoBehaviour
{ public static float spawnSpeedCount;
public static int countdownTime = 2;
public static int randomNumber;
void Start()
{
}
//One Tick
public void OnTick()
{
int randomNumber = UnityEngine.Random.Range(1, 17);
spawnSpeedCount += 1;
}
public void DoOnTickTime()
{if(!IsInvoking("OnTick"))
{
Invoke("OnTick", countdownTime);
}
}
}
Comment
Follow this Question
Related Questions
InvokeRepeating with a variable? 2 Answers
How to use a function from another script inside of the Invoke () class? 2 Answers
Repeat Function 1 Answer
Random actions time based 2 Answers
Random time interval 1 Answer