Добавление новых переменных в массив переменных - PullRequest
0 голосов
/ 28 марта 2012

У меня есть этот массив ингредиентов, который содержит несколько переменных (например, имя, значок, значение и т. Д.). Когда игрок превзошел определенные очки, в этот массив ингредиентов должен быть добавлен новый ингредиент. Так что у меня есть другой массив, который содержит значки и имена для новых ингредиентов (значения должны быть добавлены отдельно во время выполнения).

Но дело в том, что вы просто не можете использовать Добавить, чтобы добавить новые элементы в массив ингредиентов (также пытались дать обоим массивам одинаковые переменные), или просто добавить новый элемент в конце и заполнить элементы по отдельности.

Скрипт для разблокировки ингредиентов:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class progressManager : MonoBehaviour {

    private int ingUnlockLevel;
    private int lockLevel = 0;
    private int newIngScore = 500;
    public List<ingUnlocks> ingUnlock = new List<ingUnlocks>();
    public List<GameObject> lockedCraft = new List<GameObject>();
    public Texture locks;
    public Texture normal;
    private bool upGrade;

    public TextMesh nextIngredient;
    // Update is called once per frame
    void Update () {

        nextIngredient.text = ingUnlock[lockLevel].name;

        ingUnlockLevel = GetComponent<gameMechanics>().headScore;

        if(ingUnlockLevel >= newIngScore){upGrade = true;}

        if(upGrade == true){    
            GetComponent<productManager>().ingredient.;
            newIngScore = newIngScore *2;
            lockLevel+=1; 
            upGrade = false;
        }
    }

    [System.Serializable]
    public class ingUnlocks{
        public string name;
        public Texture icon;
    }
}

И часть скрипта для ингредиентов игроков:

using UnityEngine;
using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;

public class productManager : MonoBehaviour {

    private class ingredientComparer : IComparer<ingredients>{

        public int Compare(ingredients a, ingredients b)
        {
            return ((int) a.c2cPerc ) - ((int) b.c2cPerc);
        }
    }

        public List<ingredients> ingredient = new List<ingredients>();
}

[System.Serializable]
public class ingredients{

    public string name;
    public Texture icon;
    public int score;
    public int quantity;
    public float c2cPerc;
    public bool usable;

}

Есть ли способ добавить новое имя и значок из массива разблокировки в массив ингредиентов игроков?

Заранее спасибо!

1 Ответ

1 голос
/ 28 марта 2012

Трудно сказать, что именно вы ищете, но отвечает ли это на ваш вопрос?:

GetComponent<productManager>().ingredient.Add(new ingredients { name = ingUnlock[locklevel].name, icon = ingUnlock[locklevel].icon });

PS: я только что закончил строку кода из вашего примера, которая не будет компилироваться, и добавил туда новый элемент с ингредиентами, предполагая, что это то, что вы хотели сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...