首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何显示两个列表中的两个元素?

如何显示两个列表中的两个元素?
EN

Stack Overflow用户
提问于 2017-08-25 20:29:21
回答 1查看 69关注 0票数 0

所以我制作了一个幸运之轮,并且有一个奖品列表和奖品图像的列表,所以我想在最后显示奖品和奖品图像。我设法显示奖品,但不显示奖品图像。(显示屏位于当车轮停止旋转时激活的面板上)

下面是脚本:

代码语言:javascript
复制
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class SpinWheel : MonoBehaviour
{
public List<string> Premio = new List<string>();
public List<AnimationCurve> animationCurves;
public List<GameObject> ImagenPremio = new List<GameObject>();
public Text itemNumberDisplay;
private bool spinning;
private float anglePerItem;
private int randomTime;
private int itemNumber;
public GameObject RoundEndDisplay;
void Start()
{
    spinning = false;
    anglePerItem = 360 / Premio.Count;
    itemNumberDisplay.text = "";
}
void Update()
{
    if (Input.GetKeyDown(KeyCode.Mouse0) && !spinning)
    {
        randomTime = Random.Range(1, 4);
        itemNumber = Random.Range(0, Premio.Count);
        float maxAngle = 360 * randomTime + (itemNumber * anglePerItem);
        StartCoroutine(SpinTheWheel(5 * randomTime, maxAngle));
    }
}
IEnumerator SpinTheWheel(float time, float maxAngle)
{
    spinning = true;
    float timer = 0.0f;
    float startAngle = transform.eulerAngles.z;
    maxAngle = maxAngle - startAngle;
    int animationCurveNumber = Random.Range(0, animationCurves.Count);
    Debug.Log("Animation Curve No. : " + animationCurveNumber);
    while (timer < time)
    {
        //to calculate rotation
        float angle = maxAngle * 
animationCurves[animationCurveNumber].Evaluate(timer / time);
        transform.eulerAngles = new Vector3(0.0f, 0.0f, angle + startAngle);
        timer += Time.deltaTime;
        yield return 0;
    }
    transform.eulerAngles = new Vector3(0.0f, 0.0f, maxAngle + startAngle);
    spinning = false;
    Debug.Log("Premio: " + Premio[itemNumber]);
    if (spinning == false)
    {
        yield return new WaitForSeconds(1);
        RoundEndDisplay.SetActive(true);
        itemNumberDisplay.text = ("Premio: " + Premio[itemNumber]);

    }
   }
}

如果有人能帮上忙,我会很高兴!

EN

回答 1

Stack Overflow用户

发布于 2017-08-29 18:53:50

使用Dictionary存储奖品和图像数据。您可以获得如下值:

代码语言:javascript
复制
public Dictionary<string, GameObject> Premio;


private void Show(int itemNumber)
{
    Debug.Log("Premio: " +
              Premio.Keys.ToList()[itemNumber] +
              Premio[Premio.Keys.ToList()[itemNumber]);

}

private void ShowAll()
{
    foreach(var key in Premio.Keys)
    {
          Debug.Log("Premio: " + key + Premio[key]);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45881483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档