Я буду использовать Pokemon в качестве примера: у меня есть список из 10 элементов, каждый элемент содержит: имя строки, GameObject, int hp и mana int, int rarity.случайный объект списка и экземпляр gameObject
Мне нужно после каждого щелчка или нажатия, делается случайным, даже настолько хорошим, но представьте, что эти 10 покемонов, 2 из которых очень редки.
после случайного, проверит общий или редкий покемон. если он распространен, он будет сделан другим радом и выберет только 1. если редкий покемон, выберите один из двух доступных. Я считаю, что это очень запутанно.
проблема, и я не могу сделать случайный список, не создавая экземпляр объекта. В настоящее время мой код это следующим образом ..
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
using System.Linq;
public class Pokemons : MonoBehaviour
{
[Serializable]
public class ListPokemons
{
public string name;
public GameObject componentObjc;
public int hp;
public int mana;
public int rarity;
}
public ListPokemons[] pokeAtributs;
// Use this for initialization
void Start()
{
List<ListPokemons> list = pokeAtributs.ToList();
//ListPokemons pokemon = list.FirstOrDefault (r => r.componentObjc != null);
}
}
Я использую Unity 5. Я португалец и весь текст был переведен с помощью Google Translate.
Подсказка. Редкие элементы - это случайное число от 100 до 10000 (низкая вероятность получения одного и того же номера дважды), а затем назначить флаг как _rare_. Общие элементы являются случайными между 0 и 100 (более высокая возможность), также назначают флаг _common_. –
Вам нужно распределение (математика). Но, что я обычно делаю в таких случаях, я решаю, сколько редких покемонов и сколько общих я дам. Скажем, 98 общих, 2 раста. Я делаю 2 случайных броска 1-100, чтобы решить, куда идут ракеты, или даже составить список исправлений, заполнить соответственно и не прокатывать время игры, просто выбирая следующий элемент списка; таким образом, вы будете «беспристрастны», как и в противном случае (также математика: честная монета), которой вы, возможно, не будете. Кстати, почему ListPokemons не является структурой? Также используйте Awake() вместо Start(), если вы управляете GObjs –