using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class UIParticleScale : MonoBehaviour {
private List<ScaleData> scaleDatas = null;
void Awake()
{
scaleDatas = new List<ScaleData>();
foreach( ParticleSystem p in transform.GetComponentsInChildren<ParticleSystem>(true)){
scaleDatas.Add(new ScaleData(){transform = p.transform,beginScale = p.transform.localScale});
}
}
void Start ()
{
float designWidth = 1136;//開發時分辨率寬
float designHeight = 640;//開發時分辨率高
float designScale = designWidth/designHeight;
float scaleRate = (float)Screen.width/(float)Screen.height;
foreach(ScaleData scale in scaleDatas)
{
if(scale.transform != null){
if(scaleRate<designScale)
{
float scaleFactor = scaleRate / designScale;
scale.transform.localScale = scale.beginScale * scaleFactor;
}else{
scale.transform.localScale = scale.beginScale;
}
}
}
}
#if UNITY_EDITOR
void Update () {
Start(); //Editor下修改屏幕的大小實時預覽縮放效果
}
#endif
class ScaleData
{
public Transform transform;
public Vector3 beginScale = Vector3.one;
}
}
unity3dUGUI之UI粒子特效自適應縮放
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- 我們UI自適應采用的是Canvas Scaler 設置 Expand模式。 那么UI可以很好的自適應屏幕,可是粒子...
- 轉載至 http://www.cnblogs.com/ludashi/p/5895725.html 本篇博客的主題...