Bonsoir à tous,
J'ai un script avec des caméras de surveillances, qui fonctionne parfaitement tant que je n'ai qu'une seule caméra. Si je duplique le préfab de la caméra avec le script, j'ai un problème (du à de l'inexpérience et pas à un véritable bug, je sais d'où il vient).
En effet, j'ai dupliqué ma caméra, et l'alarme ne s'active que sur la première caméra, pas sur les dupliquées. J'utilise un prefab avec le même script, j'ai vérifié les variables sont les mêmes, mais je vois pas comment lui dire que le script doit fonctionner indépendamment sur chaque caméra ?
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | using UnityEngine; using System.Collections; public class Guard : MonoBehaviour { public Transform sightStart, sightEnd; public bool spotted = false; public bool facingLeft = true; public GameObject arrow; void Start() { InvokeRepeating ("Patrol", 0f, Random.Range (3f,6f)); } // Update is called once per frame void Update () { Raycasting (); Behaviours (); } void Raycasting() { Debug.DrawLine (sightStart.position, sightEnd.position, Color.green); spotted = Physics2D.Linecast (sightStart.position, sightEnd.position, 1 << LayerMask.NameToLayer ("Player")); } void Behaviours() { if (spotted == true) { arrow.SetActive(true); Alarm_Behaviours (); } else { arrow.SetActive(false); if (Enemy_Script.Speed < 0) { Enemy_Script.Speed = -2f; } else { Enemy_Script.Speed = 2f; } } } void Patrol() { facingLeft = !facingLeft; if (facingLeft == true) { transform.eulerAngles = new Vector2 (0, 0); } else { transform.eulerAngles = new Vector2 (0, 180); } } void Alarm_Behaviours() { if (spotted == true) { if (Enemy_Script.Speed < 0) { Enemy_Script.Speed = -8f; } else { Enemy_Script.Speed = 8f; } } } } |
Est ce que quelqu'un aurait une idée de ce qui pourrait causer ce petit problème ? Merci d'avance.
+1
-0