IsWaitingForPickupInit
How do I use Is Waiting For Pickup Init
Below are practical examples compiled from projects for learning and reference purposes
Featured Snippets
Line | Code | Ex.. |
---|---|---|
28 | this.IsWaitingForPickupInit = !PhotonNetwork.isMasterClient; | 1 |
39 | if (this.IsWaitingForPickupInit) | 2 |
132 | this.IsWaitingForPickupInit = false; | 3 |
File name: PickupItemSyncer.cs
Copy
24 public void OnJoinedRoom()
25 {
26 Debug.Log("Joined Room. isMasterClient: " + PhotonNetwork.isMasterClient + " id: " + PhotonNetwork.player.ID);
27 // this client joined the room. let's see if there are players and if someone has to inform us about pickups
28 this.IsWaitingForPickupInit = !PhotonNetwork.isMasterClient;
29
30 if (PhotonNetwork.playerList.Length >= 2)
31 {
32 this.Invoke("AskForPickupItemSpawnTimes", 2.0f);
33 }
34 }
File name: PickupItemSyncer.cs
Copy
37 public void AskForPickupItemSpawnTimes()
38 {
39 if (this.IsWaitingForPickupInit)
40 {
41 if (PhotonNetwork.playerList.Length < 2)
42 {
43 Debug.Log("Cant ask anyone else for PickupItem spawn times.");
44 this.IsWaitingForPickupInit = false;
45 return;
46 }
47
48
49 // find a another player (than the master, who likely is gone) to ask for the PickupItem spawn times
50 PhotonPlayer nextPlayer = PhotonNetwork.masterClient.GetNext();
51 if (nextPlayer == null || nextPlayer.Equals(PhotonNetwork.player))
52 {
53 nextPlayer = PhotonNetwork.player.GetNext();
54 //Debug.Log("This player is the Master's next. Asking this client's 'next' player: " + ((nextPlayer != null) ? nextPlayer.ToStringFull() : ""));
55 }
56
57 if (nextPlayer != null && !nextPlayer.Equals(PhotonNetwork.player))
58 {
59 this.photonView.RPC("RequestForPickupTimes", nextPlayer);
60
61 // you could restart this invoke and try to find another player after 4 seconds. but after a while it doesnt make a difference anymore
62 //this.Invoke("AskForPickupItemSpawnTimes", 2.0f);
63 }
64 else
65 {
66 Debug.Log("No player left to ask");
67 this.IsWaitingForPickupInit = false;
68 }
69 }
70 }
File name: PickupItemSyncer.cs
Copy
130 public void PickupItemInit(double timeBase, float[] inactivePickupsAndTimes)
131 {
132 this.IsWaitingForPickupInit = false;
133
134 // if there are no inactive pickups, the sender will send a list of 0 items. this is not a problem...
135 for (int i = 0; i < inactivePickupsAndTimes.Length / 2; i++)
136 {
137 int arrayIndex = i*2;
138 int viewIdOfPickup = (int)inactivePickupsAndTimes[arrayIndex];
139 float timeUntilRespawnBasedOnTimeBase = inactivePickupsAndTimes[arrayIndex + 1];
140
141
142 PhotonView view = PhotonView.Find(viewIdOfPickup);
143 PickupItem pi = view.GetComponent
144
145 if (timeUntilRespawnBasedOnTimeBase <= 0)
146 {
147 pi.PickedUp(0.0f);
148 }
149 else
150 {
151 double timeOfRespawn = timeUntilRespawnBasedOnTimeBase + timeBase;
152
153 Debug.Log(view.viewID + " respawn: " + timeOfRespawn + " timeUntilRespawnBasedOnTimeBase:" + timeUntilRespawnBasedOnTimeBase + " SecondsBeforeRespawn: " + pi.SecondsBeforeRespawn);
154 double timeBeforeRespawn = timeOfRespawn - PhotonNetwork.time;
155 if (timeUntilRespawnBasedOnTimeBase <= 0)
156 {
157 timeBeforeRespawn = 0.0f;
158 }
159
160 pi.PickedUp((float) timeBeforeRespawn);
161 }
162 }
163 }
IsWaitingForPickupInit 169 lượt xem
Gõ tìm kiếm nhanh...