相似问题:粒子在Canvas下创建不会在Game视图在显示,粒子特效在scene视图显示,game视图中不显示。直接在场景中创建粒子可以正常显示,在Canvas下创建粒子就会出现该情况,请问是什么原因导致?
首先Canvas要将渲染模式改为Scree Space - Camera,然后把UI专用相机挂上去。
这是因为相机设置的问题。通常我们会单独为UI放置一个UIcamera,这个相机是专门用来渲染UI的。相应的,MainCamera应当勾掉UI层级。
UIcamera会比MainCamera更”靠前“一点,这样才能使得在运行的过程中,保证UI界面浮在场景的前方。
当需要把粒子效果和UI结合在一起的时候,也就是需要让粒子和UI结合在一起显示时,应当把粒子所在的gameObject设定为UI层级。不然会出现只看得见UI,却看不见粒子的情况。
最大粒子数量
public UnityEngine.UI.Image circularImage;
public Text countdownText;
public GameObject FxTrails;
public float speed;
private float currentAmout = 100;
void Update()
{
ringCountdown();
}
float b = 10f;
public void ringCountdown()
{
FxTrails.GetComponent<ParticleSystem>().Play();
float a = Mathf.Floor(currentAmout);
b -= Time.deltaTime;
countdownText.text = Convert.ToString(Mathf.Ceil(b));
if(b < 0f)
{
countdownText.enabled = false;
FxTrails.GetComponent<ParticleSystem>().Stop();
}
currentAmout -= speed;
if (currentAmout < 0) currentAmout = 0;
circularImage.GetComponent<UnityEngine.UI.Image>().
fillAmount = currentAmout / 100.0f;
}