Commit 664858267bf3a7f59b0dbf785639fb12d7fac33f

Authored by Mateus Lustosa
1 parent f1f0ce68
Exists in master and in 1 other branch dev

Nova implementacao do GenericPlayerManager

Assets/Bundles/XEROX 0 → 100644
No preview for this file type
Assets/Bundles/XINGAR 0 → 100644
No preview for this file type
Assets/Scenes/Scene.unity
... ... @@ -37,9 +37,6 @@ RenderSettings:
37 37 m_ReflectionIntensity: 1
38 38 m_CustomReflection: {fileID: 0}
39 39 m_Sun: {fileID: 0}
40   ---- !u!127 &3
41   -LevelGameManager:
42   - m_ObjectHideFlags: 0
43 40 --- !u!157 &4
44 41 LightmapSettings:
45 42 m_ObjectHideFlags: 0
... ... @@ -68,6 +65,7 @@ LightmapSettings:
68 65 m_TextureCompression: 0
69 66 m_FinalGather: 0
70 67 m_FinalGatherRayCount: 1024
  68 + m_ReflectionCompression: 2
71 69 m_LightmapSnapshot: {fileID: 0}
72 70 m_RuntimeCPUUsage: 25
73 71 --- !u!196 &5
... ...
Assets/Scripts/Editor/MyEditorScript.cs 0 → 100644
... ... @@ -0,0 +1,10 @@
  1 +using UnityEditor;
  2 +using UnityEngine;
  3 +
  4 +class MyEditorScript
  5 +{
  6 + static void RunAsd ()
  7 + {
  8 + Debug.Log("asd");
  9 + }
  10 +}
0 11 \ No newline at end of file
... ...
Assets/Scripts/Editor/MyEditorScript.cs.meta 0 → 100644
... ... @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: 789d1dce6607a394b82bcaa4af8d1c46
  3 +timeCreated: 1448041534
  4 +licenseType: Pro
  5 +MonoImporter:
  6 + serializedVersion: 2
  7 + defaultReferences: []
  8 + executionOrder: 0
  9 + icon: {instanceID: 0}
  10 + userData:
  11 + assetBundleName:
  12 + assetBundleVariant:
... ...
Assets/Scripts/GenericPlayerManager.cs
... ... @@ -10,11 +10,13 @@ using UnityEngine.UI;
10 10  
11 11 public abstract class GenericPlayerManager : MonoBehaviour {
12 12  
13   - private struct AnimationReference {
  13 + private class AnimationReference
  14 + {
14 15 public string name;
15 16 public string subtitle;
16 17 public AnimationState state;
17 18 public short type;
  19 + public bool playing;
18 20  
19 21 public AnimationReference(string name, string subtitle, AnimationState state, short type)
20 22 {
... ... @@ -22,53 +24,70 @@ public abstract class GenericPlayerManager : MonoBehaviour {
22 24 this.subtitle = subtitle;
23 25 this.state = state;
24 26 this.type = type;
  27 + this.playing = false;
  28 + }
  29 + }
  30 +
  31 + protected class DefaultSignSpeed
  32 + {
  33 + public static float DEFAULT = 1.1F;
  34 + public static float DEFAULT_MAX = 2F;
  35 +
  36 + public float speed;
  37 + public float max;
  38 + // Relação entre a velocidade do tipo representado e a velocidade DEFAULT.
  39 + public float unit;
  40 +
  41 + public DefaultSignSpeed()
  42 + {
  43 + this.speed = DEFAULT;
  44 + this.max = DEFAULT_MAX;
  45 + this.unit = 1F;
  46 + }
  47 +
  48 + public DefaultSignSpeed(float defaultSpeed, float defaultMaxSpeed)
  49 + {
  50 + this.speed = defaultSpeed;
  51 + this.max = defaultMaxSpeed;
  52 + this.unit = (this.max - this.speed) / (DEFAULT_MAX - DEFAULT);
25 53 }
26 54  
  55 + /*
  56 + * Retorna velocidade em relação ao estado do slider.
  57 + * @param slider - estado do slider (valor entre DefaultSignSpeed.DEFAULT e DefaultSignSpeed.DEFAULT_MAX)
  58 + */
  59 + public float getProporcionalSpeed(float slider)
  60 + {
  61 + return this.speed + (slider - DEFAULT) * this.unit;
  62 + }
27 63 }
28 64  
29 65 private const string DEFAULT_ANIMATION = "_default";
30 66 private const string NONE_ANIMATION = "_defaultWORD";
31 67  
32   - private const float FADE_LENGTH = 0.6F;
33   -
34   - private const float WORD_DEFAULT_SPEED = 1.1F;
35   - private const float WORD_MAX_SPEED = 2F;
36   -
37   - // Velocidade da primeira letra de uma palavra
38   - private const float LETTER_FIRST_SPEED = 1.8F;
39   - // Velocidade máxima de uma letra que o slider pode configurar
40   - private const float LETTER_FIRST_MAX_SPEED = 2.8F;
41   - // Taxa de velocidade da primeira letra de uma palavra equivalente a velocidade de uma palavra
42   - private const float LETTER_FIRST_UNIT_SPEED = (LETTER_FIRST_MAX_SPEED - LETTER_FIRST_SPEED) / (WORD_MAX_SPEED - WORD_DEFAULT_SPEED);
43   - // Velocidade das outras letras
44   - private const float LETTER_DEFAULT_SPEED = 2.8F;
45   - // Velocidade máxima de uma letra que o slider pode configurar
46   - private const float LETTER_MAX_SPEED = 4.3F;
47   - // Taxa de velocidade das outras letras equivalente a velocidade de uma palavra
48   - private const float LETTER_UNIT_SPEED = (LETTER_MAX_SPEED - LETTER_DEFAULT_SPEED) / (WORD_MAX_SPEED - WORD_DEFAULT_SPEED);
49   -
50   - // Velocidade de reprodução de números
51   - private const float NUMBER_DEFAULT_SPEED = 1.5F;
52   - // Velocidade máxima de um número que o slider pode configurar
53   - private const float NUMBER_MAX_SPEED = 2.9F;
54   - // Taxa de velocidade equivalente a uma unidade de velocidade de uma palavra
55   - private const float NUMBER_UNIT_SPEED = (NUMBER_MAX_SPEED - NUMBER_DEFAULT_SPEED) / (WORD_MAX_SPEED - WORD_DEFAULT_SPEED);
  68 + protected float fadeLength = 0.6F;
  69 +
  70 + protected DefaultSignSpeed defaultWordSpeed = new DefaultSignSpeed();
  71 + protected DefaultSignSpeed defaultFirstLetterSpeed = new DefaultSignSpeed(2.1F, 2.8F);
  72 + protected DefaultSignSpeed defaultLetterSpeed = new DefaultSignSpeed(3F, 4.3F);
  73 + protected DefaultSignSpeed defaultNumberSpeed = new DefaultSignSpeed(1.5F, 2.9F);
56 74  
57 75 private const short TYPE_NONE = -1;
58 76 private const short TYPE_WORD = 0;
59 77 private const short TYPE_LETTER = 1;
60 78 private const short TYPE_NUMBER = 2;
61 79  
62   - private static float hSlidersecond = WORD_DEFAULT_SPEED;
63   - private float letterSpeed = LETTER_DEFAULT_SPEED;
64   - private float numberSpeed = NUMBER_DEFAULT_SPEED;
  80 + private float hSlidersecond = DefaultSignSpeed.DEFAULT;
  81 + private float wordSpeed = DefaultSignSpeed.DEFAULT;
  82 + private float letterSpeed = DefaultSignSpeed.DEFAULT;
  83 + private float numberSpeed = DefaultSignSpeed.DEFAULT;
65 84  
66 85 protected string glosa = "";
67 86 private static String[] stringPos = { DEFAULT_ANIMATION };//vetor que sera usado para quebrar a glosa
68 87  
69   - public GameObject AVATAR;
  88 + private GameObject AVATAR;
70 89 private Animation COMPONENT_ANIMATION;
71   - private BoxCollider COMPONENT_COLLIDER;
  90 + private BoxCollider AVATAR_COLLIDER;
72 91 public Text SUBTITLES;
73 92  
74 93 // Guarda os nomes das palavras ja carregadas.
... ... @@ -80,21 +99,30 @@ public abstract class GenericPlayerManager : MonoBehaviour {
80 99 // Utilizada para alterar velocidade e apresentar a legenda.
81 100 private volatile Queue<AnimationReference> animQueue = new Queue<AnimationReference>();
82 101  
83   - // "play" flag. Indica se está carregando a glosa.
  102 + private volatile bool loadingSingleAnimation = false;
84 103 private volatile bool loading = false;
85   -
86   - protected bool playing = false;
87   - protected bool paused = false;
  104 + private volatile bool playing = false;
  105 + private volatile bool paused = false;
88 106  
89 107 public virtual void Start()
90 108 {
91   - //Gets Animation Component reference from AVATAR
92   - COMPONENT_ANIMATION = AVATAR.GetComponent<Animation>();
93   - COMPONENT_COLLIDER = AVATAR.GetComponent<BoxCollider>();
  109 + wordSpeed = defaultWordSpeed.speed;
  110 + letterSpeed = defaultLetterSpeed.speed;
  111 + numberSpeed = defaultNumberSpeed.speed;
  112 +
  113 + AVATAR = GameObject.FindGameObjectWithTag("avatar");//referencia para o avatar
  114 + COMPONENT_ANIMATION = AVATAR.GetComponent<Animation>();//referencia para o componente animador do avatar
  115 + AVATAR_COLLIDER = GameObject.FindGameObjectWithTag("avatar").GetComponent<BoxCollider>();
94 116 }
95 117  
96   - public void SetAvatarCollider(bool active){
97   - COMPONENT_COLLIDER.enabled = active;
  118 + public bool isLoadingSingleAnimation() { return loadingSingleAnimation; }
  119 + public bool isLoading() { return loading; }
  120 + public bool isPlaying() { return playing; }
  121 + public bool isPaused() { return paused; }
  122 +
  123 + public void SetAvatarCollider(bool isActive)
  124 + {
  125 + AVATAR_COLLIDER.enabled = isActive;
98 126 }
99 127  
100 128 protected virtual void setSubtitle(string text)
... ... @@ -107,8 +135,9 @@ public abstract class GenericPlayerManager : MonoBehaviour {
107 135 {
108 136 hSlidersecond = x;
109 137  
110   - letterSpeed = getProporcionalSpeed(LETTER_DEFAULT_SPEED, LETTER_UNIT_SPEED);
111   - numberSpeed = getProporcionalSpeed(NUMBER_DEFAULT_SPEED, NUMBER_UNIT_SPEED);
  138 + wordSpeed = defaultWordSpeed.getProporcionalSpeed(x);
  139 + letterSpeed = defaultLetterSpeed.getProporcionalSpeed(x);
  140 + numberSpeed = defaultNumberSpeed.getProporcionalSpeed(x);
112 141  
113 142 if ( ! paused)
114 143 foreach (AnimationReference reference in animQueue)
... ... @@ -116,20 +145,15 @@ public abstract class GenericPlayerManager : MonoBehaviour {
116 145 reference.state.speed = getSpeedByType(reference.type);
117 146 }
118 147  
119   - private float getProporcionalSpeed(float speed, float unit)
120   - {
121   - return speed + (hSlidersecond - WORD_DEFAULT_SPEED) * unit;
122   - }
123   -
124 148 private float getSpeedByType(short type)
125 149 {
126 150 switch (type)
127 151 {
128   - case TYPE_WORD: return hSlidersecond;
  152 + case TYPE_WORD: return wordSpeed;
129 153 case TYPE_LETTER: return letterSpeed;
130 154 case TYPE_NUMBER: return numberSpeed;
131 155 }
132   -
  156 +
133 157 return 2F;
134 158 }
135 159  
... ... @@ -159,21 +183,21 @@ public abstract class GenericPlayerManager : MonoBehaviour {
159 183 } catch (NullReferenceException nre) { Debug.Log("SetQueueList null reff::"+nre.ToString()); }
160 184  
161 185 COMPONENT_ANIMATION.Stop();
162   - COMPONENT_ANIMATION.CrossFade(DEFAULT_ANIMATION, FADE_LENGTH, PlayMode.StopAll);
  186 + COMPONENT_ANIMATION.CrossFade(DEFAULT_ANIMATION, fadeLength, PlayMode.StopAll);
163 187 }
164 188  
165 189 /*
166 190 * Manda reproduzir animação e adiciona a file de animações a serem reproduzidas.
167 191 *
168 192 * Caso não haja SUBTITLE, name será utilizado como SUBTITLE.
169   - * Caso não haja fadeLength, será atribuido FADE_LENGTH.
  193 + * Caso não haja fadeLength, será atribuido fadeLength.
170 194 * Caso não haja velocidade, hSlidersecond será atribuída.
171 195 */
172 196 private AnimationState playAnimation(short type, string name, string subtitle, float speed)
173 197 {
174 198 try
175 199 {
176   - AnimationState state = COMPONENT_ANIMATION.CrossFadeQueued(name, FADE_LENGTH, QueueMode.CompleteOthers);
  200 + AnimationState state = COMPONENT_ANIMATION.CrossFadeQueued(name, fadeLength, QueueMode.CompleteOthers);
177 201 state.speed = speed;
178 202 animQueue.Enqueue(new AnimationReference(name, subtitle, state, type));
179 203  
... ... @@ -202,36 +226,63 @@ public abstract class GenericPlayerManager : MonoBehaviour {
202 226 */
203 227 protected abstract WWW loadAssetBundle(string aniName);
204 228  
  229 +
205 230 /**
206 231 * Listen to changes in the playing status.
207 232 */
208 233 protected abstract void onPlayingStateChange();
209 234  
210   - public void play()
  235 +
  236 + public void switchPauseState(bool paused)
211 237 {
212   - if (playing)
  238 + if (this.paused != paused)
213 239 {
214   - paused = ! paused;
  240 + this.paused = paused;
215 241  
216 242 foreach (AnimationReference reference in animQueue)
217 243 if (reference.state != null)
218 244 reference.state.speed = paused ? 0F : getSpeedByType(reference.type);
  245 +
  246 + onPlayingStateChange();
219 247 }
  248 + }
  249 + public void switchPauseState()
  250 + {
  251 + switchPauseState( ! paused);
  252 + }
  253 +
  254 + public bool play()
  255 + {
  256 + if (playing)
  257 + switchPauseState();
220 258 else
221   - {
222   - playing = true;
  259 + play(true, true, true);
  260 +
  261 + return true;
  262 + }
223 263  
224   - try{
225   - if (loading)
  264 + public bool play(bool stopLoading, bool stopPlaying, bool forceLoading)
  265 + {
  266 + try {
  267 + if (loading)
  268 + {
  269 + if (stopLoading)
226 270 stop_animations();
227 271 else
  272 + return false;
  273 + }
  274 + else if (playing)
  275 + {
  276 + if (stopPlaying)
228 277 stopAnimations();
229   - } catch (NullReferenceException nre) { nre.ToString(); }
230 278  
231   - StartCoroutine("loadAndPlay");
232   - }
  279 + else if ( ! forceLoading)
  280 + return false;
  281 + }
  282 + } catch (NullReferenceException nre) { nre.ToString(); }
233 283  
234   - onPlayingStateChange();
  284 + StartCoroutine("loadAndPlay");
  285 + return true;
235 286 }
236 287  
237 288  
... ... @@ -279,7 +330,7 @@ public abstract class GenericPlayerManager : MonoBehaviour {
279 330 bool defaultPlayed = false;
280 331  
281 332 // A reprodução da primeira letra deve ser longa para não ser cortada no fade
282   - letterSpeed = getProporcionalSpeed(LETTER_FIRST_SPEED, LETTER_FIRST_UNIT_SPEED);
  333 + letterSpeed = defaultLetterSpeed.getProporcionalSpeed(hSlidersecond);
283 334  
284 335 for (int i = 0; i < word.Length; i++)
285 336 {
... ... @@ -293,11 +344,11 @@ public abstract class GenericPlayerManager : MonoBehaviour {
293 344 // Se for um número
294 345 else if (second >= 48 && second <= 57)
295 346 playAnimation(TYPE_NUMBER, second.ToString(), lastAnimationSubtitle, numberSpeed);
296   -
  347 +
297 348 // Se for uma vírgula
298 349 else if (second == 44)
299 350 playAnimation(TYPE_WORD, second.ToString(), lastAnimationSubtitle);
300   -
  351 +
301 352 // Não há animação
302 353 else
303 354 {
... ... @@ -308,7 +359,7 @@ public abstract class GenericPlayerManager : MonoBehaviour {
308 359 playAnimation(TYPE_NONE, DEFAULT_ANIMATION, lastAnimationSubtitle);
309 360  
310 361 // A reprodução da próxima letra deve ser longa para não ser cortada no fade
311   - letterSpeed = getProporcionalSpeed(LETTER_FIRST_SPEED, LETTER_FIRST_UNIT_SPEED);
  362 + letterSpeed = defaultLetterSpeed.getProporcionalSpeed(hSlidersecond);
312 363 }
313 364  
314 365 Debug.Log("Animação \"" + second + "\" inexistente.");
... ... @@ -316,23 +367,69 @@ public abstract class GenericPlayerManager : MonoBehaviour {
316 367 }
317 368  
318 369 defaultPlayed = false;
319   - letterSpeed = getProporcionalSpeed(LETTER_DEFAULT_SPEED, LETTER_UNIT_SPEED);
  370 + letterSpeed = defaultLetterSpeed.getProporcionalSpeed(hSlidersecond);
320 371 }
321 372  
322 373 return lastAnimationSubtitle;
323 374 }
324 375  
325 376  
  377 + protected IEnumerator loadAnimation(string name)
  378 + {
  379 + loadingSingleAnimation = true;
  380 +
  381 + // Função loadAssetBundle é definida pela classe filha
  382 + WWW www = loadAssetBundle(name);
  383 +
  384 + if (www != null)
  385 + {
  386 + yield return www;
  387 +
  388 + AssetBundle bundle = null;
  389 +
  390 + if (www.error == null)
  391 + bundle = www.assetBundle;
  392 +
  393 + if (bundle != null && ! String.IsNullOrEmpty(bundle.mainAsset.name))
  394 + {
  395 + AnimationClip aniClip = bundle.mainAsset as AnimationClip;
  396 + bundle.Unload(false);
  397 +
  398 + if (aniClip)
  399 + {
  400 + COMPONENT_ANIMATION.AddClip(aniClip, name);
  401 +
  402 + // Reproduz palavra
  403 + loadedAssetBundles.Add(name);
  404 + yield break;
  405 + }
  406 + else Debug.Log ("Sinal \"" + name + "\" não carregado corretamente.");
  407 + }
  408 + }
  409 +
  410 + // Soletra palavra
  411 + nonexistentAssetBundles.Add(name);
  412 +
  413 + loadingSingleAnimation = false;
  414 + }
  415 +
  416 +
326 417 private IEnumerator loadAndPlay()
327 418 {
328 419 loading = true;
  420 + onPlayingStateChange();
329 421  
330 422 string lastAnimationSubtitle = "";
331 423 bool spelled = false;
332 424  
333 425 // Default
334 426 playAnimation(TYPE_NONE, DEFAULT_ANIMATION, "", 2F);
335   - StartCoroutine("handleStates");
  427 +
  428 + if ( ! playing)
  429 + {
  430 + playing = true;
  431 + StartCoroutine("handleStates");
  432 + }
336 433  
337 434 stringPos = glosa.Split(' ');
338 435  
... ... @@ -389,7 +486,6 @@ public abstract class GenericPlayerManager : MonoBehaviour {
389 486 }
390 487  
391 488 bool isPunctuation = false;
392   - lastAnimationSubtitle = aniName;
393 489  
394 490 if (aniName[0] == '[')
395 491 {
... ... @@ -410,15 +506,16 @@ public abstract class GenericPlayerManager : MonoBehaviour {
410 506 isPunctuation = true;
411 507 lastAnimationSubtitle = "!";
412 508 }
  509 + else
  510 + {
  511 + lastAnimationSubtitle = aniName;
  512 + }
413 513 }
414 514  
415 515 if (isPunctuation)
416 516 playAnimation(TYPE_WORD, aniName, lastAnimationSubtitle);
417 517 else
418 518 playAnimation(TYPE_WORD, aniName);
419   -
420   - /*playAnimation(TYPE_WORD, aniName);
421   - lastAnimationSubtitle = aniName;*/
422 519 }
423 520 // Soletra palavra
424 521 else
... ... @@ -428,29 +525,33 @@ public abstract class GenericPlayerManager : MonoBehaviour {
428 525 if ( ! nonexistent)
429 526 nonexistentAssetBundles.Add(aniName);
430 527  
431   - if (aniName[0] == '[' && (aniName.Equals("[PONTO]") || aniName.Equals("[INTERROGACAO]") || aniName.Equals("[EXCLAMACAO]")))
  528 + Debug.Log("~~ To spell: " + aniName);
  529 +
  530 + if (aniName.Equals("[PONTO]") || aniName.Equals("[INTERROGACAO]") || aniName.Equals("[EXCLAMACAO]"))
432 531 {
433 532 playAnimation(TYPE_NONE, DEFAULT_ANIMATION, "", 1.6F);
  533 + continue;
434 534 }
  535 +
  536 + // Se já houve o soletramento de alguma palavra, reproduz animação default
  537 + if (spelled)
  538 + playAnimation(TYPE_NONE, DEFAULT_ANIMATION, lastAnimationSubtitle, 1.6F);
435 539 else
436   - {
437   - // Se já houve o soletramento de alguma palavra, reproduz animação default
438   - if (spelled)
439   - playAnimation(TYPE_NONE, DEFAULT_ANIMATION, lastAnimationSubtitle, 1.6F);
440   - else
441   - spelled = true;
  540 + spelled = true;
442 541  
443   - lastAnimationSubtitle = spellWord(aniName);
444   - }
  542 + lastAnimationSubtitle = spellWord(aniName);
445 543 }
446 544 }
447 545  
448 546 // Default
449 547 playAnimation(TYPE_NONE, DEFAULT_ANIMATION, lastAnimationSubtitle);
450   - loading = false;
451 548  
  549 + loading = false;
  550 + onPlayingStateChange();
452 551 }
453 552  
  553 + //int _id = 0;
  554 +
454 555 /*
455 556 * Sincroniza as legendas com as animações.
456 557 */
... ... @@ -467,9 +568,15 @@ public abstract class GenericPlayerManager : MonoBehaviour {
467 568 setSubtitle(reference.subtitle);
468 569  
469 570 while (COMPONENT_ANIMATION.IsPlaying(reference.name))
  571 + {
  572 + reference.playing = true;
470 573 yield return null;
  574 + }
471 575  
472   - animQueue.Dequeue();
  576 + if (reference.state == null)
  577 + animQueue.Dequeue();
  578 + else
  579 + yield return null;
473 580 }
474 581 else yield return null;
475 582  
... ... @@ -479,19 +586,6 @@ public abstract class GenericPlayerManager : MonoBehaviour {
479 586 playing = false;
480 587 paused = false;
481 588 onPlayingStateChange();
482   -
483   - }
484   -
485   -
486   - /*
487   - * Chamada quando o player sinaliza UPDATE ou STOP.
488   - * Limpa as filas de assets existentes e não existentes
489   - * permitindo que novos assets sejam executados
490   - */
491   - public void clear()
492   - {
493   - nonexistentAssetBundles.Clear();
494   - loadedAssetBundles.Clear();
495 589 }
496 590  
497 591 }
... ...
Assets/Scripts/PlayerManager.cs
... ... @@ -48,14 +48,12 @@ public class PlayerManager : GenericPlayerManager {
48 48 // a terceira, para testes com a textbox
49 49 public string catchGlosa()
50 50 {
51   - glosa = Marshal.PtrToStringAnsi ( coreExecute( ) );
52   - //osa = "PIZZA";
53   - return glosa;
  51 + return base.glosa = Marshal.PtrToStringAnsi ( coreExecute( ) );
54 52 }
55 53  
56 54 public void start_local_play()
57 55 {
58   - catchGlosa();
  56 + this.catchGlosa();
59 57 base.play();
60 58 }
61 59  
... ... @@ -78,9 +76,9 @@ public class PlayerManager : GenericPlayerManager {
78 76  
79 77 protected override void onPlayingStateChange()
80 78 {
81   - if (base.playing)
  79 + if (base.isPlaying())
82 80 {
83   - playButton.GetComponent<Image>().sprite = base.paused
  81 + playButton.GetComponent<Image>().sprite = base.isPaused()
84 82 ? playSprite : pauseSprite;
85 83  
86 84 stopButtonGraphic.color = enabledAlpha;
... ...
ProjectSettings/ProjectSettings.asset
... ... @@ -115,6 +115,7 @@ PlayerSettings:
115 115 iPhoneTargetOSVersion: 22
116 116 uIPrerenderedIcon: 0
117 117 uIRequiresPersistentWiFi: 0
  118 + uIRequiresFullScreen: 1
118 119 uIStatusBarHidden: 1
119 120 uIExitOnSuspend: 0
120 121 uIStatusBarStyle: 0
... ... @@ -163,8 +164,10 @@ PlayerSettings:
163 164 m_BuildTargetIcons:
164 165 - m_BuildTarget:
165 166 m_Icons:
166   - - m_Icon: {fileID: 2800000, guid: 98a8d3ec5bfc6ef4bacfcc810c9edf5a, type: 3}
167   - m_Size: 128
  167 + - serializedVersion: 2
  168 + m_Icon: {fileID: 2800000, guid: 98a8d3ec5bfc6ef4bacfcc810c9edf5a, type: 3}
  169 + m_Width: 128
  170 + m_Height: 128
168 171 m_BuildTargetBatching:
169 172 - m_BuildTarget: WebGL
170 173 m_StaticBatching: 1
... ... @@ -261,6 +264,10 @@ PlayerSettings:
261 264 ps4pnGameCustomData: 1
262 265 playerPrefsSupport: 0
263 266 ps4ReprojectionSupport: 0
  267 + ps4UseAudio3dBackend: 0
  268 + ps4Audio3dVirtualSpeakerCount: 14
  269 + ps4attribCpuUsage: 0
  270 + ps4SocialScreenEnabled: 0
264 271 ps4attribUserManagement: 0
265 272 ps4attribMoveSupport: 0
266 273 ps4attrib3DSupport: 0
... ...
ProjectSettings/ProjectVersion.txt
1   -m_EditorVersion: 5.2.1f1
  1 +m_EditorVersion: 5.2.3f1
2 2 m_StandardAssetsVersion: 0
... ...