【发布时间】:2023-02-06 02:20:56
【问题描述】:
我正在尝试编写一个脚本,当您按下一个按钮以使其实例化一张随机稀有度的卡片时,我需要在一小段延迟后删除这些卡片,尽管我认为延迟不起作用,因为这些卡片似乎会立即消失
代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class CardMasterScript : MonoBehaviour
{
public GameObject[] CardArray = new GameObject[8];
public float RollNumber;
public void RollCard()
{
RollNumber = Random.Range(0.1f, 100);
Debug.Log("Number Rolled: " + RollNumber);
if(RollNumber <= 47.9)
{
var card = Instantiate(CardArray[0]);
StartCoroutine(TimeDelay());
Destroy(card);
} else if(RollNumber > 47.9 && RollNumber <= 77.9)
{
var card = Instantiate(CardArray[1]);
StartCoroutine(TimeDelay());
Destroy(card);
} else if( RollNumber > 77.9 && RollNumber <= 87.9)
{
var card = Instantiate(CardArray[2]);
StartCoroutine(TimeDelay());
Destroy(card);
} else if(RollNumber > 87.9 && RollNumber <= 94.9)
{
var card = Instantiate(CardArray[3]);
StartCoroutine(TimeDelay());
Destroy(card);
} else if(RollNumber > 94.9 && RollNumber <= 97.9)
{
var card = Instantiate(CardArray[4]);
StartCoroutine(TimeDelay());
Destroy(card);
} else if(RollNumber > 97.9 && RollNumber <= 99.4)
{
var card = Instantiate(CardArray[5]);
StartCoroutine(TimeDelay());
Destroy(card);
} else if(RollNumber > 99.4 && RollNumber <= 99.9)
{
var card = Instantiate(CardArray[6]);
StartCoroutine(TimeDelay());
Destroy(card);
} else if (RollNumber > 99.9 && RollNumber <= 100)
{
var card = Instantiate(CardArray[7]);
StartCoroutine(TimeDelay());
Destroy(card);
}
}
public IEnumerator TimeDelay()
{
yield return new WaitForSeconds(0.5f);
}
}
- 如果你知道如何解决这个问题,请帮助我解决这个问题,提前谢谢你!
起初我认为这是实例化的问题,它根本没有实例化卡片,但现在我不太确定问题出在哪里。
【问题讨论】: