Przeglądaj źródła

图片多语言

lvjincheng 4 lat temu
rodzic
commit
c6fd9020b5

+ 19 - 1
Assets/BowArrow/Resources/Prefabs/Views/TimeLimitGameView.prefab

@@ -274,6 +274,7 @@ GameObject:
   - component: {fileID: 5899010636357400291}
   - component: {fileID: 7077766433416584082}
   - component: {fileID: 7523998751359306880}
+  - component: {fileID: 805574714978578554}
   m_Layer: 5
   m_Name: HighestIcon
   m_TagString: Untagged
@@ -328,7 +329,7 @@ MonoBehaviour:
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_Sprite: {fileID: 21300000, guid: a96006b838660314c83beaab15fda060, type: 3}
+  m_Sprite: {fileID: 21300000, guid: 2fb78bada8042a24baf750b303447388, type: 3}
   m_Type: 0
   m_PreserveAspect: 0
   m_FillCenter: 1
@@ -338,6 +339,23 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!114 &805574714978578554
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1757250385496245220}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ad5f01a2ce5341b478b03a4801e0fb78, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  languageImages:
+  - language: 0
+    sprite: {fileID: 21300000, guid: 2fb78bada8042a24baf750b303447388, type: 3}
+  - language: 1
+    sprite: {fileID: 21300000, guid: 435c1eb97a9c1ba45be49389d1041805, type: 3}
 --- !u!1 &4673256837902506293
 GameObject:
   m_ObjectHideFlags: 0

+ 77 - 0
Assets/BowArrow/Scripts/Components/ImageAutoLanguage.cs

@@ -0,0 +1,77 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class ImageAutoLanguage : MonoBehaviour
+{
+    static LanguageEnum currentLanguageEnum = LanguageEnum.Chinese;
+    static HashSet<ImageAutoLanguage> imageAutoLanguages = new HashSet<ImageAutoLanguage>();
+    [SerializeField] LanguageImage[] languageImages = {};
+
+    private static bool inited = false;
+    public static void Init()
+    {
+        if (inited) return;
+        inited = true;
+        int id = PlayerPrefs.GetInt("Language", 0);
+        ChangeLanguage((LanguageEnum) id);
+    }
+
+    public static void ChangeLanguage(LanguageEnum languageEnum) 
+    {
+        currentLanguageEnum = languageEnum;
+        PlayerPrefs.SetInt("Language", ((int)languageEnum));
+        foreach (var imageAutoLanguage in imageAutoLanguages)
+        {
+            try {
+                imageAutoLanguage.ApplyToImage();    
+            } catch (Exception e) { Debug.LogError(e.Message); }
+        }
+    }
+
+    public static LanguageEnum GetLanguage()
+    {
+        Init();
+        return currentLanguageEnum;
+    }
+
+    void Awake()
+    {
+        Init();
+    }
+
+    void Start()
+    {
+        imageAutoLanguages.Add(this);
+        ApplyToImage();   
+    }
+
+    void OnDestroy()
+    {
+        imageAutoLanguages.Remove(this);
+    }
+
+    public void ApplyToImage()
+    {
+        Image imageComp = GetComponent<Image>();
+        bool matched = false;
+        foreach (var languageImage in languageImages)
+        {
+            if (languageImage.language == currentLanguageEnum) 
+            {
+                matched = true;
+                imageComp.sprite = languageImage.sprite;
+                break;
+            }
+        }
+        if (!matched && languageImages.Length > 0) {
+            imageComp.sprite = languageImages[0].sprite;
+        }
+    }
+}
+[Serializable]
+public class LanguageImage {
+    public LanguageEnum language;
+    public Sprite sprite;
+}

+ 11 - 0
Assets/BowArrow/Scripts/Components/ImageAutoLanguage.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ad5f01a2ce5341b478b03a4801e0fb78
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 0
Assets/BowArrow/Scripts/Components/TextAutoLanguage.cs

@@ -42,6 +42,7 @@ public class TextAutoLanguage : MonoBehaviour
 
     public static LanguageEnum GetLanguage()
     {
+        Init();
         if (language is LanguageEnglish) {
             return LanguageEnum.English;
         } 

+ 2 - 0
Assets/BowArrow/Scripts/View/SetUpView.cs

@@ -119,10 +119,12 @@ public class SetUpView : MonoBehaviour
         {
             TextAutoLanguage.ChangeLanguage(LanguageEnum.Chinese);
             TextAutoLanguage2.ChangeLanguage(LanguageEnum.Chinese);
+            ImageAutoLanguage.ChangeLanguage(LanguageEnum.Chinese);
         }
         else if (TextAutoLanguage.GetLanguage() == LanguageEnum.Chinese) {
             TextAutoLanguage.ChangeLanguage(LanguageEnum.English);
             TextAutoLanguage2.ChangeLanguage(LanguageEnum.English);
+            ImageAutoLanguage.ChangeLanguage(LanguageEnum.English);
         }
     }
 

BIN
Assets/BowArrow/Textures/TimeLimitGame/图标-最高分-en.png


+ 1 - 1
Assets/BowArrow/Textures/TimeLimitGame/组 30 (3).png.meta → Assets/BowArrow/Textures/TimeLimitGame/图标-最高分-en.png.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: a96006b838660314c83beaab15fda060
+guid: 435c1eb97a9c1ba45be49389d1041805
 TextureImporter:
   internalIDToNameTable: []
   externalObjects: {}

+ 0 - 0
Assets/BowArrow/Textures/TimeLimitGame/组 30 (3).png → Assets/BowArrow/Textures/TimeLimitGame/图标-最高分.png


+ 120 - 0
Assets/BowArrow/Textures/TimeLimitGame/图标-最高分.png.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: 2fb78bada8042a24baf750b303447388
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: