Does anyone know how to convert the below arrays into a generic list?
I’m banging my head against a wall I’ve been trying to get this working for 8 hours.
var upgradesApplied : boolean[];
var upgrades : Upgrade[];
private var storeUpgrades : Upgrade[];
function Awake() {
upgrades = Array(GetComponentsInChildren(Upgrade)).ToBuiltin(Upgrade) as Upgrade[];
var tempArr = new Array();
upgradesApplied = new boolean[upgrades.length];
for(var i = 0; i < upgrades.length ; i ++) {
upgradesApplied = upgrades.applied;
if(upgrades.showInStore){
tempArr.Push(upgrades);
}
}
storeUpgrades = tempArr.ToBuiltin(Upgrade) as Upgrade[];
}
I can’t see how that would compile at all; stuff like “upgradesApplied = upgrades.applied” is a syntax error, since upgrades is an Upgrade[ ] array, and arrays don’t have an “applied” property. Here’s my best guess based on what seems more logical:
var upgradesApplied : boolean[];
var upgrades : Upgrade[];
private var storeUpgrades : List.<Upgrade>;
function Awake() {
upgrades = GetComponentsInChildren.<Upgrade>();
storeUpgrades = new List.<Upgrade>();
upgradesApplied = new boolean[upgrades.Length];
for (var i = 0; i < upgrades.Length; i++) {
upgradesApplied[i] = upgrades[i].applied;
if (upgrades[i].showInStore) {
storeUpgrades.Add (upgrades[i]);
}
}
}
–Eric
1 Like
Thanks Eric5h5
The below worked for me, you were quite spot on, the guy from cShapatron gave me a hand its his tool i’m trying to use to convert my project to c#
var upgradesApplied : boolean[];
var upgrades : Upgrade[];
private var storeUpgrades : Upgrade[];
function Awake() {
upgrades = GetComponentsInChildren.<Upgrade>();
var tempArr = new List.<Upgrade>();
upgradesApplied = new boolean[upgrades.length];
for(var i = 0; i < upgrades.length ; i ++) {
upgradesApplied[ i ] = upgrades[ i ].applied;
if(upgrades[ i ].showInStore){
tempArr.Add(upgrades[ i ]);
}
}
storeUpgrades = tempArr.ToArray();
}