Ejemplo n.º 1
0
 void Awake()
 {
     #if UNITY_IOS
     phoneID   = SystemInfo.deviceUniqueIdentifier;
     phoneType = iPhone.generation;
     #endif
 }
Ejemplo n.º 2
0
    public static bool CheckCanCacheResource()
    {
#if UNITY_EDITOR
        return(true);
#elif UNITY_IPHONE
        iPhoneGeneration iosGen = iPhone.generation;
        if (iosGen == iPhoneGeneration.iPhone4S ||
            iosGen == iPhoneGeneration.iPhone4)
        {
            return(true);
        }
        else
        {
            return(false);
        }
#elif UNITY_ANDROID
        long ram = long.Parse(PhoneInfo.getTotalMemory()) / 1024 / 1024;
        if (ram >= 1024)
        {
            return(false);
        }
        else
        {
            return(true);
        }
#else
        return(true);
#endif
    }
Ejemplo n.º 3
0
        /// <summary>
        /// 初始设置性能参数
        /// </summary>
        public static void InitPerformanceLevel()
        {
            int level = 0;            //对应于Edit-Project Settings-Quality中的6个级别(0-5)

            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
                if (SystemInfo.processorCount == 1)
                {
                    level = 0;
                }
                else
                {
                    level = 2;
                }
            }
            else if (Application.platform == RuntimePlatform.WindowsPlayer ||
                     Application.platform == RuntimePlatform.WindowsEditor)
            {
                level = 5;
            }
            else if (SystemInfo.processorCount <= 2)
            {
                level = 1;
            }
            else if (SystemInfo.processorCount > 2)
            {
                level = 2;
            }
#if UNITY_IPHONE
            iPhoneGeneration gen = iPhone.generation;
            if (gen == iPhoneGeneration.iPhone4)
            {
                level = 0;
            }
#endif
            //level = 1;
            QualitySettings.SetQualityLevel(level);
            switch (level)
            {
            case 0:
                QualitySettings.masterTextureLimit = 1;
                break;

            case 1:
                QualitySettings.masterTextureLimit = 1;
                break;

            case 2:
            case 3:
            case 4:
            case 5:
                UI_SHADER_GRAY = "(TrueGray)";
                UI_GRAY_COLOR  = Color.black;
                break;
            }
            MyDebug.Log("质量级别:" + level + ",gray=" + UI_SHADER_GRAY);
        }
Ejemplo n.º 4
0
    // 判断是否是iPhone4s
    public static bool IsIphone4s()
    {
#if UNITY_IPHONE
        iPhoneGeneration iosGen = iPhone.generation;
        if (iosGen == iPhoneGeneration.iPhone4S)
        {
            return(true);
        }
        else
        {
            return(false);
        }
#else
        return(false);
#endif
    }
Ejemplo n.º 5
0
    public static PERFORMANCE_ENUM GetPerformanceType()
    {
        iPhoneGeneration iosGen = iPhone.generation;

        if (iosGen == iPhoneGeneration.iPhone4S ||
            iosGen == iPhoneGeneration.iPhone4)
        {
            return(PERFORMANCE_ENUM.LOW);
        }
        else
        if (iosGen == iPhoneGeneration.iPhone6 ||
            iosGen == iPhoneGeneration.iPhone6Plus)
        {
            return(PERFORMANCE_ENUM.MIDDLE);
        }

        // 其他统一为中配
        return(PERFORMANCE_ENUM.MIDDLE);
    }
	protected DeviceAssetsType GetAssetsTypeForIOS(iPhoneGeneration deviceGen)
	{
		// Search through configured low res devices.
		for(int i = 0; i < lowResDevices.Length; i++)
		{
			if (lowResDevices[i] == deviceGen) {
				return DeviceAssetsType.LowRes;
			}
		}

		// Search through configured high res devices.
		for(int i = 0; i < highResDevices.Length; i++)
		{
			if (highResDevices[i] == deviceGen) {
				return DeviceAssetsType.HighRes;
			}
		}
		
		return defaultAssetsType;
	}
Ejemplo n.º 7
0
    protected DeviceAssetsType GetAssetsTypeForIOS(iPhoneGeneration deviceGen)
    {
        // Search through configured low res devices.
        for (int i = 0; i < lowResDevices.Length; i++)
        {
            if (lowResDevices[i] == deviceGen)
            {
                return(DeviceAssetsType.LowRes);
            }
        }

        // Search through configured high res devices.
        for (int i = 0; i < highResDevices.Length; i++)
        {
            if (highResDevices[i] == deviceGen)
            {
                return(DeviceAssetsType.HighRes);
            }
        }

        return(defaultAssetsType);
    }
Ejemplo n.º 8
0
    WebViewHeightType GetCurrentHeightTyp(iPhoneGeneration generation)
    {
        switch (generation)
        {
        case iPhoneGeneration.iPhone:
        case iPhoneGeneration.iPhone3G:
        case iPhoneGeneration.iPhone3GS:
        case iPhoneGeneration.iPodTouch1Gen:
        case iPhoneGeneration.iPodTouch2Gen:
        case iPhoneGeneration.iPodTouch3Gen:
            //普通屏 320像素 x 480像素 iPhone 1、3G、3GS,iPod Touch 1、2、3
            return(WebViewHeightType.HEIGHT_480);

        case iPhoneGeneration.iPhone4:
        case iPhoneGeneration.iPhone4S:
        case iPhoneGeneration.iPodTouch4Gen:
            //3:2 Retina 屏 640像素 x 960像素 iPhone 4、4S,iPod Touch 4
            return(WebViewHeightType.HEIGHT_960);

        case iPhoneGeneration.iPhone5:
        case iPhoneGeneration.iPodTouch5Gen:
            //16:9 Retina 屏 640像素 x 1136像素 iPhone 5,iPod Touch 5
            return(WebViewHeightType.HEIGHT_1136);

        case iPhoneGeneration.iPad1Gen:
        case iPhoneGeneration.iPad2Gen:
        case iPhoneGeneration.iPadMini1Gen:
            //普通屏 768像素 x 1024像素 iPad 1, iPad2,iPad mini
            return(WebViewHeightType.HEIGHT_1024);

        case iPhoneGeneration.iPad3Gen:
        case iPhoneGeneration.iPad4Gen:
            //Retina屏 1536像素 x 2048像素 New iPad,iPad 4
            return(WebViewHeightType.HEIGHT_2048);

        default:
            return(WebViewHeightType.HEIGHT_1024);
        }
    }
Ejemplo n.º 9
0
    // 判断是否内存512
    public static bool MemoryLow512()
    {
#if UNITY_IPHONE
        iPhoneGeneration iosGen = iPhone.generation;
        if (iosGen == iPhoneGeneration.iPhone4)
        {
            return(true);
        }
        else
        {
            return(false);
        }
#else
        if (SystemInfo.systemMemorySize < 512)
        {
            return(true);
        }
        else
        {
            return(false);
        }
#endif
    }
Ejemplo n.º 10
0
        static void collectRenderInfo()
        {
            setTextureQuality();
            if (SystemConfig.isUserSetRenderQuality())
            {
                SystemConfig.setAnisotropicFilter();
                return;
            }
#if UNITY_IPHONE
            iPhoneGeneration iosGen = iPhone.generation;
            if (iosGen == iPhoneGeneration.Unknown)
            {
                SystemConfig.renderquality = Renderquality.VeryHigh;
            }

            if (iosGen == iPhoneGeneration.iPad3Gen || iosGen == iPhoneGeneration.iPad4Gen || iosGen == iPhoneGeneration.iPad5Gen)
            {
                SystemConfig.renderquality = Renderquality.High;
            }

            if (iosGen <= iPhoneGeneration.iPad2Gen)
            {
                //            //
                //// ժҪ:
                ////     First generation device.
                //iPhone = 1,
                ////
                //// ժҪ:
                ////     Second generation.
                //iPhone3G = 2,
                ////
                //// ժҪ:
                ////     Third generation.
                //iPhone3GS = 3,
                ////
                //// ժҪ:
                ////     iPod Touch, first generation.
                //iPodTouch1Gen = 4,
                ////
                //// ժҪ:
                ////     iPod Touch, second generation.
                //iPodTouch2Gen = 5,
                ////
                //// ժҪ:
                ////     iPod Touch, third generation.
                //iPodTouch3Gen = 6,
                ////
                //// ժҪ:
                ////     iPad, first generation.
                //iPad1Gen = 7,
                ////
                //// ժҪ:
                ////     Fourth generation.
                //iPhone4 = 8,
                ////
                //// ժҪ:
                ////     iPod Touch, fourth generation.
                //iPodTouch4Gen = 9,
                ////
                //// ժҪ:
                ////     iPad, second generation.
                //iPad2Gen = 10,
                SystemConfig.renderquality = Renderquality.Low;
            }
            else if (iosGen <= iPhoneGeneration.iPad3Gen || iosGen == iPhoneGeneration.iPadMini1Gen ||
                     iosGen == iPhoneGeneration.iPad4Gen)
            {
                //            //
                //// ժҪ:
                ////     Fifth generation.
                //iPhone4S = 11,
                ////
                //// ժҪ:
                ////     iPad, third generation.
                //iPad3Gen = 12,
                //
                // ժҪ:
                ////     iPadMini, first generation.
                //iPadMini1Gen = 15,
                ////
                //// ժҪ:
                ////     iPad, fourth generation.
                //iPad4Gen = 16,
                SystemConfig.renderquality = Renderquality.Normal;
            }
            else if (iosGen <= iPhoneGeneration.iPadMini2Gen)
            {
                //            //
                //// ժҪ:
                ////     iPhone5.
                //iPhone5 = 13,
                ////
                //// ժҪ:
                ////     iPod Touch, fifth generation.
                //iPodTouch5Gen = 14,
                if (iosGen == iPhoneGeneration.iPhone5S)
                {
                    SystemConfig.renderquality = Renderquality.VeryHigh;
                }
                SystemConfig.renderquality = Renderquality.High;
            }
            //else if (iosGen == iPhoneGeneration.iPadMini2Gen)
            //{

            //    return Renderquality.VeryHigh;
            //}
            else
            {
                SystemConfig.renderquality = Renderquality.VeryHigh;
            }
#elif UNITY_ANDROID
            SystemConfig.renderquality = getAndroidDefaultRenderQuality();
            Debug.Log("Android Renderquality = " + SystemConfig.renderquality.ToString());
#else
            //return Renderquality.Normal;
            SystemConfig.renderquality = Renderquality.Normal;
#endif
        }
Ejemplo n.º 11
0
    public static void SetGameQuality()
    {
        var defaultQualityLevel = 3;

#if UNITY_IOS
        iPhoneGeneration iOSGen = iPhone.generation;
        if (iOSGen == iPhoneGeneration.iPhone3GS)
        {
            defaultQualityLevel = 1;
        }
        else if (iOSGen == iPhoneGeneration.iPhone4)
        {
            defaultQualityLevel = 1;
        }
        else if (iOSGen == iPhoneGeneration.iPhone4S)
        {
            defaultQualityLevel = 1;
        }
        else if (iOSGen == iPhoneGeneration.iPhone5 || iOSGen == iPhoneGeneration.iPhone5C)
        {
            defaultQualityLevel = 2;
        }
        else if (iOSGen == iPhoneGeneration.iPhone5S || iOSGen == iPhoneGeneration.iPhone6 ||
                 iOSGen == iPhoneGeneration.iPhone6Plus)
        {
            defaultQualityLevel = 3;
        }
        else if (iOSGen == iPhoneGeneration.iPad1Gen)
        {
            defaultQualityLevel = 1;
        }
        else if (iOSGen == iPhoneGeneration.iPad2Gen)
        {
            defaultQualityLevel = 1;
        }
        else if (iOSGen == iPhoneGeneration.iPad3Gen)
        {
            defaultQualityLevel = 2;
        }
        else if (iOSGen == iPhoneGeneration.iPodTouch3Gen)
        {
            defaultQualityLevel = 2;
        }
        else if (iOSGen == iPhoneGeneration.iPodTouch4Gen)
        {
            defaultQualityLevel = 2;
        }
        else
        {
            string device = SystemInfo.deviceModel;

            if (device == "iPhone")
            {
                defaultQualityLevel = 3;
            }
            else if (device == "iPad")
            {
                defaultQualityLevel = 3;
            }
            else if (device == "iPod")
            {
                defaultQualityLevel = 1;
            }
        }
#endif

#if UNITY_ANDROID
        var shaderLevel = SystemInfo.graphicsShaderLevel;
        var fillrate    = SystemInfo.graphicsPixelFillrate;
        var vram        = SystemInfo.graphicsMemorySize;
        var cpus        = SystemInfo.processorCount;
        if (fillrate < 0)
        {
            if (shaderLevel < 10)
            {
                fillrate = 1000;
            }
            else if (shaderLevel < 20)
            {
                fillrate = 1300;
            }
            else if (shaderLevel < 30)
            {
                fillrate = 2000;
            }
            else
            {
                fillrate = 3000;
            }
            if (cpus >= 6)
            {
                fillrate *= 3;
            }
            else if (cpus >= 3)
            {
                fillrate *= 2;
            }
            if (vram >= 512)
            {
                fillrate *= 2;
            }
            else if (vram <= 100)
            {
                fillrate /= 2;
            }
        }

        var resx          = Screen.width;
        var resy          = Screen.height;
        var fillneed      = (float)((resx * resy + 400 * 300) * (30.0 / 1000000.0));
        float[] levelmult = { 0, 30f, 60f, 120f };
        var level         = 0;
        while (level < 3 && fillrate > fillneed * levelmult[level])
        {
            ++level;
        }


        Logger.Debug(String.Format("-------------------------shaderLevel {0},cpus {1}, vram {2}", shaderLevel, cpus,
                                   vram));
        Logger.Debug(String.Format("-------------------------{0}x{1} need {2} has {3} = {4} level", resx, resy, fillneed,
                                   fillrate, level));
        defaultQualityLevel = level;
#endif

        if (null == GameSetting.Instance)
        {
            Logger.Error("GameSetting.Instance = null , call SetGameQuality too early!");
            return;
        }
        GameSetting.Instance.GameQualityLevel    = PlayerPrefs.GetInt(GameSetting.GameQuilatyKey, defaultQualityLevel);
        GameSetting.Instance.GameResolutionLevel = PlayerPrefs.GetInt(GameSetting.GameResolutionKey, 3);
    }
	public void In(
		[FriendlyName("Output To Use", "The output switch to use.")] [DefaultValue(iPhoneGeneration.Unknown)] iPhoneGeneration CurrentOutput
	) {
		// Set correct output socket to true
		if (m_SwitchOpen) {
			switch (CurrentOutput) {
				case iPhoneGeneration.iPhone:
					iPhone(this, new System.EventArgs());
					break;

				case iPhoneGeneration.iPhone3G:
					iPhone3G(this, new System.EventArgs());
					break;

				case iPhoneGeneration.iPhone3GS:
					iPhone3GS(this, new System.EventArgs());
					break;

				case iPhoneGeneration.iPodTouch1Gen:
					iPodTouch1Gen(this, new System.EventArgs());
					break;

				case iPhoneGeneration.iPodTouch2Gen:
					iPodTouch2Gen(this, new System.EventArgs());
					break;

				case iPhoneGeneration.iPodTouch3Gen:
					iPodTouch3Gen(this, new System.EventArgs());
					break;
				
				case iPhoneGeneration.iPad1Gen:
					iPad1Gen(this, new System.EventArgs());
					break;
				
				case iPhoneGeneration.iPhone4:
					iPhone4(this, new System.EventArgs());
					break;
				
				case iPhoneGeneration.iPodTouch4Gen:
					iPodTouch4Gen(this, new System.EventArgs());
					break;
				
				case iPhoneGeneration.iPad2Gen:
					iPad2Gen(this, new System.EventArgs());
					break;
				
				case iPhoneGeneration.iPhone4S:
					iPhone4S(this, new System.EventArgs());
					break;
				
				case iPhoneGeneration.iPad3Gen:
					iPad3Gen(this, new System.EventArgs());
					break;
				
				case iPhoneGeneration.iPhone5:
					iPhone5(this, new System.EventArgs());
					break;
				
				case iPhoneGeneration.iPodTouch5Gen:
					iPodTouch5Gen(this, new System.EventArgs());
					break;
				
				case iPhoneGeneration.iPhoneUnknown:
					iPhoneUnknown(this, new System.EventArgs());
					break;
				
				case iPhoneGeneration.iPadUnknown:
					iPadUnknown(this, new System.EventArgs());
					break;
				
				case iPhoneGeneration.iPodTouchUnknown:
					iPodTouchUnknown(this, new System.EventArgs());
					break;

				default:
					Unknown(this, new System.EventArgs());
					break;
			}
		}
		
	}
Ejemplo n.º 13
0
    public static void SetGameQuality()
    {
        var defaultQualityLevel = 3;

#if UNITY_IOS
        {
            iPhoneGeneration iOSGen = iPhone.generation;
            if (iOSGen == iPhoneGeneration.iPhone3GS)
            {
                defaultQualityLevel = 1;
            }
            else if (iOSGen == iPhoneGeneration.iPhone4)
            {
                defaultQualityLevel = 1;
            }
            else if (iOSGen == iPhoneGeneration.iPhone4S)
            {
                defaultQualityLevel = 1;
            }
            else if (iOSGen == iPhoneGeneration.iPhone5 || iOSGen == iPhoneGeneration.iPhone5C)
            {
                defaultQualityLevel = 2;
            }
            else if (iOSGen == iPhoneGeneration.iPhone5S || iOSGen == iPhoneGeneration.iPhone6 ||
                     iOSGen == iPhoneGeneration.iPhone6Plus)
            {
                defaultQualityLevel = 3;
            }
            else if (iOSGen == iPhoneGeneration.iPad1Gen)
            {
                defaultQualityLevel = 1;
            }
            else if (iOSGen == iPhoneGeneration.iPad2Gen)
            {
                defaultQualityLevel = 1;
            }
            else if (iOSGen == iPhoneGeneration.iPad3Gen)
            {
                defaultQualityLevel = 2;
            }
            else if (iOSGen == iPhoneGeneration.iPodTouch3Gen)
            {
                defaultQualityLevel = 2;
            }
            else if (iOSGen == iPhoneGeneration.iPodTouch4Gen)
            {
                defaultQualityLevel = 2;
            }
            else
            {
                string device = SystemInfo.deviceModel;

                Logger.Debug("Current device is :" + device);
                if (device == "iPhone")
                {
                    defaultQualityLevel = 3;
                }
                else if (device == "iPad")
                {
                    defaultQualityLevel = 3;
                }
                else if (device == "iPod")
                {
                    defaultQualityLevel = 1;
                }
            }
        }
#endif

#if UNITY_ANDROID
        {
            var ram = SystemInfo.systemMemorySize;
            // var vram = SystemInfo.graphicsMemorySize;
            var cpus = SystemInfo.processorCount;

            if (cpus > 4 && ram >= 2800)
            {
                defaultQualityLevel = 3;
            }
            else if (ram >= 1900)
            {
                defaultQualityLevel = 2;
            }
            else
            {
                defaultQualityLevel = 1;
            }
        }
#endif
        if (null == GameSetting.Instance)
        {
            Logger.Error("GameSetting.Instance = null , call SetGameQuality too early!");
            return;
        }
        var level = PlayerPrefs.GetInt(GameSetting.GameQuilatyKey, defaultQualityLevel);
        if (level < 1)
        {
            level = defaultQualityLevel;
        }
        GameSetting.Instance.GameQualityLevel = level;
    }
Ejemplo n.º 14
0
 static void Init()
 {
     generation = iPhoneGeneration.iPhone;
     scaleFactor = Startup.ScaleFactor;
 }
Ejemplo n.º 15
0
    void InitPosition(iPhoneGeneration generation)
    {
        switch (generation)
        {
        case iPhoneGeneration.iPhone:
        case iPhoneGeneration.iPhone3G:
        case iPhoneGeneration.iPhone3GS:
        case iPhoneGeneration.iPodTouch1Gen:
        case iPhoneGeneration.iPodTouch2Gen:
        case iPhoneGeneration.iPodTouch3Gen:
            //普通屏 320像素 x 480像素 iPhone 1、3G、3GS,iPod Touch 1、2、3
            top    = 114;
            bottom = 141;
            left   = 23;
            right  = 23;
            break;

        case iPhoneGeneration.iPhone4:
        case iPhoneGeneration.iPhone4S:
        case iPhoneGeneration.iPodTouch4Gen:
            //3:2 Retina 屏 640像素 x 960像素 iPhone 4、4S,iPod Touch 4
            top    = 229;
            bottom = 282;
            left   = 46;
            right  = 46;
            break;

        case iPhoneGeneration.iPhone5:
        case iPhoneGeneration.iPodTouch5Gen:
            //16:9 Retina 屏 640像素 x 1136像素 iPhone 5,iPod Touch 5
            top    = 317;
            bottom = 370;
            left   = 46;
            right  = 46;
            break;

        case iPhoneGeneration.iPad1Gen:
        case iPhoneGeneration.iPad2Gen:
        case iPhoneGeneration.iPadMini1Gen:
            //普通屏 768像素 x 1024像素 iPad 1, iPad2,iPad mini
            top    = 261;
            bottom = 314;
            left   = 110;
            right  = 110;
            break;

        case iPhoneGeneration.iPad3Gen:
        case iPhoneGeneration.iPad4Gen:
            //Retina屏 1536像素 x 2048像素 New iPad,iPad 4
            top    = 522;
            bottom = 628;
            left   = 220;
            right  = 220;
            break;

        case iPhoneGeneration.iPhoneUnknown:
            //Retina屏  for 5s,5c //
            top    = 317;
            bottom = 370;
            left   = 46;
            right  = 46;
            break;

        case iPhoneGeneration.iPadUnknown:
            //Retina屏  for ipad air(5) , mini2  //
            top    = 522;
            bottom = 628;
            left   = 220;
            right  = 220;
            break;

        case iPhoneGeneration.iPodTouchUnknown:
            break;

        default:
            break;
        }
    }