Bonjour,
je suis chargé de modifier un script C# dans une application Unity. Il s'agit d'enregistrer les déplacements de la caméra. Je n'ai aucun souci pour récupérer les coordonnées avec camera.transform.position, mais la question que je me pose est la suivante :
à quel moment et comment enregistrer les données sans que cela nuise aux performances du jeu ?
J'utilse un StreamWriter pour écrire les données.
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Update() { // mes instructions // écriture des données : writeData(); } private void writeData() { string camPos; float x, y, z; float rx, ry, rz; x = _camera.position.x; y = _camera.position.y; z = _camera.position.z; rx = _camera.rotation.x; ry = _camera.rotation.y; rz = _camera.rotation.z; camPos = String.Format("{0:F3}\t{1:F3}\t{2:F3}\t{3:F3}\t{4:F3}\t{5:F3}", x, y, z, rx, ry, rz); dataWriter.WriteLine(camPos ); dataWriter.Flush(); }
ou créer un Coroutine (je ne suis pas sûr de la syntaxe du yield) ?
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Update() { // mes instructions // écriture des données : StartCoroutine(writeData()); } IEnumerator writeData() { string camPos; float x, y, z; float rx, ry, rz; x = _camera.position.x; y = _camera.position.y; z = _camera.position.z; rx = _camera.rotation.x; ry = _camera.rotation.y; rz = _camera.rotation.z; camPos = String.Format("{0:F3}\t{1:F3}\t{2:F3}\t{3:F3}\t{4:F3}\t{5:F3}", x, y, z, rx, ry, rz); dataWriter.WriteLine(camPos ); dataWriter.Flush(); yield return null; }
Merci pour votre aide
Partager