Having problems with Random();
Hello I'm making a tile based strategy game, but i'm having problems with the random function. My new random (r) is appearantly creating problems:
Code:
using UnityEngine;
using System.Collections;
public class TileScript : MonoBehaviour {
public GameObject grasslandPrefab;
public GameObject desertPrefab;
Random r = new Random(); //Making random named "r"
int randomTG = r.Next(1, 2); //making a int (randomTG) and making it generate 1 or 2
// Use this for initialization
void Start () {
if (randomTG == 1) //if randomTG == 1 a Grassland prefab tile is instantiated.
{
Rigidbody instantiatedProjectile = Instantiate(grasslandPrefab
,
transform.position,
transform.rotation)
as Rigidbody;
}else if(randomTG == 2)//if randomTG == 2 a dessert prefab tile is instantiated.
{
Rigidbody instantiatedProjectile = Instantiate(desertPrefab
,
transform.position,
transform.rotation)
as Rigidbody;
}
}
// Update is called once per frame
void Update () {
}
}
Console output:
Assets/TileScript.cs(9,10): error CS0236: A field initializer cannot reference the nonstatic field, method, or property `TileScript.r´
I´ve looked at other peoples code and i´ve got no idea whats wrong!
Please help!
Console Output Pic:
Answer by e4lime · Jun 13, 2016 at 03:54 PM
Use https://docs.unity3d.com/ScriptReference/Random.Range.html instead. For example:
void Start() {
int type = Random.Range(0, 2); // returns 0 or 1
if (type == 0) {
// do stuff
}
else if (type == 1) {
//do stuff
}
}
Answer by NoseKills · Jun 13, 2016 at 04:02 PM
I think the c# documentation of that error explains it quite clearly.
Instance fields cannot be used to initialize other instance fields outside a method. If you are trying to initialize a variable outside a method, consider performing the initialization inside the class constructor.
You have to do the assignment in Start or Awake.
Your answer
Follow this Question
Related Questions
How should I use the `FreeLookCam` script located in the standard assets folder 0 Answers
[C#]How to save a list of items to use in another script and it's not a player prefs type of list? 0 Answers
Can someone please help me find out what wrong with my code. 1 Answer
Does anyone have a good script that can be used to make a horse/vehicle rideable? 0 Answers