Skip to content

Commit 4fac9cc

Browse files
committed
Deprecate oculus graphics & quality recommended settings check
1 parent 27617a6 commit 4fac9cc

File tree

1 file changed

+54
-81
lines changed

1 file changed

+54
-81
lines changed

Assets/HTC.UnityPlugin/ViveInputUtility/Scripts/Editor/VRPlatformSettings/OculusGoSettings.cs

Lines changed: 54 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ public OculusGoRecommendedSettings()
244244
recommendedValue = true,
245245
});
246246

247-
#if UNITY_5_5_OR_NEWER
247+
#if UNITY_5_5_OR_NEWER && !UNITY_2019_4_OR_NEWER
248248
Add(new VIUVersionCheck.RecommendedSetting<bool>()
249249
{
250250
settingTitle = "Use Oculus Mobile recommended Quality Settings",
@@ -255,38 +255,39 @@ public OculusGoRecommendedSettings()
255255
settingObj.Update();
256256

257257
var qualitySettingsArray = settingObj.FindProperty("m_QualitySettings");
258-
for (int i = 0, imax = qualitySettingsArray.arraySize; i < imax; ++i)
259-
{
260-
// Simple(level 2) is a good one to start from, it should be the only level that is checked.
261-
var element = qualitySettingsArray.GetArrayElementAtIndex(i);
262-
var excludedArray = element.FindPropertyRelative("excludedTargetPlatforms");
263-
264-
var foundExcludeAndroidPlatform = false;
265-
for (int j = 0, jmax = excludedArray.arraySize; j < jmax; ++j)
266-
{
267-
if (excludedArray.GetArrayElementAtIndex(j).stringValue == "Android")
268-
{
269-
foundExcludeAndroidPlatform = true;
270-
break;
271-
}
272-
}
273-
274-
if (i == 2) { if (foundExcludeAndroidPlatform) { return false; } }
275-
else if (!foundExcludeAndroidPlatform) { return false; }
276-
}
277-
278-
var lv2qualitySetting = qualitySettingsArray.GetArrayElementAtIndex(2);
279-
if (lv2qualitySetting.FindPropertyRelative("pixelLightCount").intValue > 1) { return false; }
280-
if (lv2qualitySetting.FindPropertyRelative("anisotropicTextures").intValue != (int)AnisotropicFiltering.Disable) { return false; }
281-
var antiAliasingLevel = lv2qualitySetting.FindPropertyRelative("antiAliasing").intValue; if (antiAliasingLevel > 4 || antiAliasingLevel < 2) { return false; }
282-
if (lv2qualitySetting.FindPropertyRelative("shadows").intValue >= (int)ShadowQuality.All) { return false; }
258+
// try to apply on default, unchanged, lagecy quality settings only
259+
if (qualitySettingsArray.arraySize < 3) { return true; }
260+
var simpleQualitySetting = qualitySettingsArray.GetArrayElementAtIndex(2);
261+
262+
var nameProp = simpleQualitySetting.FindPropertyRelative("name"); if (nameProp == null) { return true; }
263+
var simpleQualitySettingName = nameProp.stringValue;
264+
if (simpleQualitySettingName != "Simple" || simpleQualitySettingName != "Medium") { return true; }
265+
266+
var excludedPlatforms = simpleQualitySetting.FindPropertyRelative("excludedTargetPlatforms"); if (excludedPlatforms == null) { return true; }
267+
var pixelLightCount = simpleQualitySetting.FindPropertyRelative("pixelLightCount"); if (pixelLightCount == null) { return true; }
268+
var anisotropicTextures = simpleQualitySetting.FindPropertyRelative("anisotropicTextures"); if (anisotropicTextures == null) { return true; }
269+
var antiAliasing = simpleQualitySetting.FindPropertyRelative("antiAliasing"); if (antiAliasing == null) { return true; }
270+
var shadows = simpleQualitySetting.FindPropertyRelative("shadows"); if (shadows == null) { return true; }
271+
var vSyncCount = simpleQualitySetting.FindPropertyRelative("vSyncCount"); if (vSyncCount == null) { return true; }
283272
#if UNITY_2019_1_OR_NEWER
284-
if (lv2qualitySetting.FindPropertyRelative("skinWeights").intValue > 2) { return false; }
273+
var weights = simpleQualitySetting.FindPropertyRelative("skinWeights"); if (weights == null) { return true; }
285274
#else
286-
if (lv2qualitySetting.FindPropertyRelative("blendWeights").intValue > 2) { return false; }
275+
var weights = simpleQualitySetting.FindPropertyRelative("blendWeights"); if (weights == null) { return true; }
287276
#endif
288-
if (lv2qualitySetting.FindPropertyRelative("vSyncCount").intValue != 0) { return false; }
289277

278+
for (int i = 0, imax = excludedPlatforms.arraySize; i < imax; ++i)
279+
{
280+
if (excludedPlatforms.GetArrayElementAtIndex(i).stringValue == "Android")
281+
{
282+
return false;
283+
}
284+
}
285+
if (pixelLightCount.intValue > 1) { return false; }
286+
if (anisotropicTextures.intValue != (int)AnisotropicFiltering.Disable) { return false; }
287+
if (antiAliasing.intValue > 4 || antiAliasing.intValue < 2) { return false; }
288+
if (shadows.intValue >= (int)ShadowQuality.All) { return false; }
289+
if (vSyncCount.intValue != 0) { return false; }
290+
if (weights.intValue > 2) { return false; }
290291
return true;
291292
},
292293
setValueFunc = v =>
@@ -296,70 +297,42 @@ public OculusGoRecommendedSettings()
296297
var settingObj = GetQualitySettingsAsset();
297298
settingObj.Update();
298299

300+
// Simple(level 2) is a good one to start from, it should be the only level that is checked.
299301
var qualitySettingsArray = settingObj.FindProperty("m_QualitySettings");
300-
for (int i = 0, imax = qualitySettingsArray.arraySize; i < imax; ++i)
301-
{
302-
// Simple(level 2) is a good one to start from, it should be the only level that is checked.
303-
var element = qualitySettingsArray.GetArrayElementAtIndex(i);
304-
var excludedArray = element.FindPropertyRelative("excludedTargetPlatforms");
305-
306-
var excludeAndroidIndex = -1;
307-
for (int j = 0, jmax = excludedArray.arraySize; j < jmax; ++j)
308-
{
309-
if (excludedArray.GetArrayElementAtIndex(j).stringValue == "Android")
310-
{
311-
excludeAndroidIndex = j;
312-
break;
313-
}
314-
}
315-
316-
if (i == 2)
317-
{
318-
if (excludeAndroidIndex >= 0)
319-
{
320-
excludedArray.DeleteArrayElementAtIndex(excludeAndroidIndex);
321-
}
322-
}
323-
else if (excludeAndroidIndex < 0)
324-
{
325-
excludedArray.arraySize += 1;
326-
excludedArray.GetArrayElementAtIndex(excludedArray.arraySize - 1).stringValue = "Android";
327-
}
328-
}
329-
330-
var lv2qualitySetting = qualitySettingsArray.GetArrayElementAtIndex(2);
331-
332-
var pixelLightCountProp = lv2qualitySetting.FindPropertyRelative("pixelLightCount");
333-
var pixelLightCount = pixelLightCountProp.intValue;
334-
if (pixelLightCount > 1) { pixelLightCountProp.intValue = 1; }
335-
else if (pixelLightCount < 0) { pixelLightCountProp.intValue = 0; }
336-
337-
lv2qualitySetting.FindPropertyRelative("anisotropicTextures").intValue = (int)AnisotropicFiltering.Disable;
338-
339-
var antiAliasingLevelProp = lv2qualitySetting.FindPropertyRelative("antiAliasing");
340-
var antiAliasingLevel = antiAliasingLevelProp.intValue;
341-
if (antiAliasingLevel != 2 || antiAliasingLevel != 4) { antiAliasingLevelProp.intValue = 4; }
342-
343-
var shadowsProp = lv2qualitySetting.FindPropertyRelative("shadows");
344-
if (shadowsProp.intValue >= (int)ShadowQuality.All) { shadowsProp.intValue = (int)ShadowQuality.HardOnly; }
345-
302+
var simpleQualitySetting = qualitySettingsArray.GetArrayElementAtIndex(2);
303+
var excludedPlatforms = simpleQualitySetting.FindPropertyRelative("excludedTargetPlatforms");
304+
var pixelLightCount = simpleQualitySetting.FindPropertyRelative("pixelLightCount");
305+
var anisotropicTextures = simpleQualitySetting.FindPropertyRelative("anisotropicTextures");
306+
var antiAliasing = simpleQualitySetting.FindPropertyRelative("antiAliasing");
307+
var shadows = simpleQualitySetting.FindPropertyRelative("shadows");
308+
var vSyncCount = simpleQualitySetting.FindPropertyRelative("vSyncCount");
346309
#if UNITY_2019_1_OR_NEWER
347-
var blendWeightsProp = lv2qualitySetting.FindPropertyRelative("skinWeights");
348-
if (blendWeightsProp.intValue > 2) { blendWeightsProp.intValue = 2; }
310+
var weights = simpleQualitySetting.FindPropertyRelative("skinWeights");
349311
#else
350-
var blendWeightsProp = lv2qualitySetting.FindPropertyRelative("blendWeights");
351-
if (blendWeightsProp.intValue > 2) { blendWeightsProp.intValue = 2; }
312+
var weights = simpleQualitySetting.FindPropertyRelative("blendWeights");
352313
#endif
353314

354-
lv2qualitySetting.FindPropertyRelative("vSyncCount").intValue = 0;
315+
for (int i = 0, imax = excludedPlatforms.arraySize; i < imax; ++i)
316+
{
317+
if (excludedPlatforms.GetArrayElementAtIndex(i).stringValue == "Android")
318+
{
319+
excludedPlatforms.DeleteArrayElementAtIndex(i); break;
320+
}
321+
}
322+
pixelLightCount.intValue = 1;
323+
anisotropicTextures.intValue = (int)AnisotropicFiltering.Disable;
324+
if (antiAliasing.intValue != 2 || antiAliasing.intValue != 4) { antiAliasing.intValue = 4; }
325+
if (shadows.intValue >= (int)ShadowQuality.All) { shadows.intValue = (int)ShadowQuality.HardOnly; }
326+
vSyncCount.intValue = 0;
327+
if (weights.intValue > 2) { weights.intValue = 2; }
355328

356329
settingObj.ApplyModifiedProperties();
357330
},
358331
recommendedValue = true,
359332
});
360333
#endif
361334

362-
#if UNITY_5_6_OR_NEWER
335+
#if UNITY_5_6_OR_NEWER && !UNITY_2019_4_OR_NEWER
363336
Add(new VIUVersionCheck.RecommendedSetting<bool>()
364337
{
365338
settingTitle = "Use Oculus Mobile recommended Graphics Tier Settings",

0 commit comments

Comments
 (0)