IsWaitingForPickupInit









How do I use Is Waiting For Pickup Init
Below are practical examples compiled from projects for learning and reference purposes

Featured Snippets


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...