如何在不為每種模式設定不同精靈的情況下實作明暗模式?
最佳的將是某種顏色的預制件。這樣每個游戲物件都將被分配某種型別的顏色,要更改它,我只需要更改 Color 預制件的顏色。
我認為這不存在,但也許有人知道類似的方式?
我正在使用c#和Unity
uj5u.com熱心網友回復:
我認為您可以使用 scriptableObjects,您可以將它們像游戲中的資產一樣保存。我為您撰寫了一個適用于影像的簡單代碼。首先為 Image UI 組件創建類。
[CreateAssetMenu(fileName = "Color", menuName = "UI/Color Pallet", order = 1)]
public class ImageColorPallet : ScriptableObject
{
public Color lightColor;
public Color darkColor;
}
然后,右鍵單擊專案選項卡并從 UI 選單中創建一個顏色托盤腳本物件。(此路徑由 menuName 屬性中的可撰寫腳本的物件代碼中定義的路徑創建)然后將以下代碼添加到影像組件并將您創建的可撰寫腳本的物件分配給它。打開和關閉暗模式以查看更改。(注意顏色透明度不是0)
public class ImageColorMode : MonoBehaviour
{
[SerializeField] private ImageColorPallet colorPallet;
[SerializeField] private bool isDark;
private void OnValidate()
{
GetComponent<Image>().color = isDark ? colorPallet.darkColor : colorPallet.lightColor;
}
}
問題是您必須為每個 UI 元素創建這些可撰寫腳本的物件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/512420.html
標籤:C#unity3d颜色
