ToString() public method

Returns a formatted string with details on this NetworkViewID.

public ToString ( ) : string
return string
        public static int GetNetworkViewID(UnityEngine.NetworkViewID viewID)
        {
            string str = viewID.ToString();
            int    id;

            var sceneID = Regex.Match(str, @"SceneID\: ([0-9]+)");

            if (sceneID.Success && Int32.TryParse(sceneID.Groups[1].Value, out id))
            {
                return(id);
            }

            var allocatedID = Regex.Match(str, @"AllocatedID\: ([0-9]+)");

            if (allocatedID.Success && Int32.TryParse(allocatedID.Groups[1].Value, out id))
            {
                return(id);
            }

            return(0);
        }
コード例 #2
0
    void JoinPlayer(NetworkViewID newPlayerView, Vector3 pos, NetworkPlayer p)
    {
        // instantiate the prefab
        // and set some of its properties

        GameObject newPlayer = Instantiate(playerPrefab, pos, Quaternion.identity) as GameObject;
        newPlayer.GetComponent<NetworkView>().viewID = newPlayerView;
        newPlayer.tag = "Player";

        // set the remote player's target to its current location
        // so that non-moving remote player don't move to the origin
        newPlayer.GetComponent<playerController>().target = pos;

        // most importantly, populate the NetworkPlayer
        // structure with the data received from the player
        // this will allow us to ignore updates from ourself

        newPlayer.GetComponent<playerController>().netPlayer = p;

        // the local GameObject for any player is unknown to
        // the server, so it can only send updates for NetworkPlayer
        // IDs - which we need to translate to a player's local
        // GameObject representation

        // to do this, we will add the player to the "players" Hashtable
        // for fast reverse-lookups for player updates
        // Hashtable structure is NetworkPlayer --> GameObject

        players.Add(p,newPlayer);

        if(Network.isClient)
        {
            if(p.ipAddress==LocalAddress)
            {
                Debug.Log("Server accepted my connection request, I am real player now: " + newPlayerView.ToString());

                // because this is the local player, activate the character controller

                newPlayer.GetComponent<CharacterController>().enabled = true;
                newPlayer.GetComponent<playerController>().isLocalPlayer = true;

                // also, set the global localPlayerObject as a convenience variable
                // to easily find the local player GameObject to send position updates

                localPlayerObject = newPlayer;

                // also, now put us into the "playing" GameState

                GameState = (int)state.playing;

                // and finally, attach the main camera to me

                Camera.main.transform.parent = newPlayer.transform;
                Camera.main.transform.localPosition = new Vector3(0,1,0);

            } else {

                Debug.Log("Another player connected: " + newPlayerView.ToString());

                // because this in not the local player, deactivate the character controller

                newPlayer.GetComponent<CharacterController>().enabled = false;
                newPlayer.GetComponent<playerController>().isLocalPlayer = false;
            }
        }
    }
コード例 #3
0
    public void JoinPlayer(NetworkViewID newPlayerView, Vector3 pos, NetworkPlayer netPlayer)
    {
        if(netPlayer.ipAddress==LocalAddress)
        {
            Debug.Log("Server responded to my connection request, instantiating player " + newPlayerView.ToString());

            GameObject newPlayer = Instantiate(LocalPlayerPrefab, pos, Quaternion.identity) as GameObject;
            newPlayer.GetComponent<NetworkView>().viewID = newPlayerView;
            newPlayer.tag = "Player";
            newPlayer.name = "Player " + newPlayerView.ToString();

            newPlayer.GetComponent<playerController>().isLocalPlayer = true;
            newPlayer.GetComponent<playerController>().target = pos;
            newPlayer.GetComponent<playerController>().netPlayer = netPlayer;

            // populate a data structure with player information

            players.Add(new Player(netPlayer, newPlayer, newPlayerView));

            // set the global PlayerObject as a convenience variable
            // to easily find the local player GameObject to send position updates

            PlayerObject = newPlayer;

            // attach the main camera

            Camera.main.transform.position = PlayerObject.transform.position + new Vector3(0,1F,0);
            Camera.main.transform.parent = PlayerObject.transform;

            // provide the playerObject to all scripts on the world object

            gameObject.BroadcastMessage("SetLocalPlayerObject",PlayerObject,SendMessageOptions.DontRequireReceiver);

        } else {

            Debug.Log("Another player connected: " + newPlayerView.ToString());

            GameObject newPlayer = Instantiate(RemotePlayerPrefab, pos, Quaternion.identity) as GameObject;
            newPlayer.GetComponent<NetworkView>().viewID = newPlayerView;
            newPlayer.tag = "Player";
            newPlayer.name = "Player " + newPlayerView.ToString();

            // because this in not the local player, deactivate the character controller

            newPlayer.GetComponent<CharacterController>().enabled = false;
            newPlayer.GetComponent<playerController>().isLocalPlayer = false;
            newPlayer.GetComponent<playerController>().target = pos;
            newPlayer.GetComponent<playerController>().netPlayer = netPlayer;

            // populate a data structure with player information

            players.Add(new Player(netPlayer, newPlayer, newPlayerView));

        }
    }
コード例 #4
0
    static bool NetworkViewID_ToString(JSVCall vc, int argc)
    {
        int len = argc;

        if (len == 0)
        {
            UnityEngine.NetworkViewID argThis = (UnityEngine.NetworkViewID)vc.csObj;                JSApi.setStringS((int)JSApi.SetType.Rval, argThis.ToString());
            JSMgr.changeJSObj(vc.jsObjID, argThis);
        }

        return(true);
    }
コード例 #5
0
    // Use this for initialization
    void OnNetworkInstantiate(NetworkMessageInfo info)
    {
        thisPlayerColor = Color.black;
        ownedPrisms = new List<ManipulatableScript>();
        lookAT = new Vector3(0.0f, 0.0f, 1.0f);
        playerTransform = cameraTransform = this.transform;

        //deal with this when adding multiple player support
        //thisView = this.gameObject.GetComponent(typeof(NetworkView)) as NetworkView;
        netid = thisView.viewID;
        theID = netid.ToString();
        char[] space = {' '};
        int tempIndex = theID.IndexOfAny(space);
        theID = theID.Substring(tempIndex + 1);
        int tempID = int.Parse(theID);
        setID(tempID);
        //GameObject secondary = GameObject.FindGameObjectWithTag("Secondary");
        //secondaryTemplate = secondary.GetComponent(typeof(SecondaryProjectileScript)) as SecondaryProjectileScript;
        GameObject camera = GameObject.FindGameObjectWithTag("MainCamera");
        camera_script = camera.GetComponent(typeof(FPSKinectCameraScript)) as FPSKinectCameraScript;
    }
コード例 #6
0
ファイル: NetworkManager.cs プロジェクト: Blurift/Instincts
	void LoginToServer(string user, string pass, NetworkPlayer player, NetworkViewID id)
	{
		if(Network.isServer)
		{
			GameManager.NetMessage(user + " joined the game");
			//Logger.Write("Player " + player.ToString() + " : " + user + " - " +player.ipAddress + " trying to log in");
			
			//Loop through all connected players and send details.
			networkView.RPC("RandomMessage", player, "Sending players through");
			foreach(KeyValuePair<NetworkPlayer, GameObject> pair in Players)
			{
				if(pair.Key != player)
				{
					Debug.Log("Sending player data : " + pair.Value.ToString() + " to " + player.ToString() + " : " + id.ToString());
					networkView.RPC("SpawnPlayer", player, pair.Value.networkView.viewID, pair.Value.transform.position, PlayerNames[pair.Key]);
					//networkView.RPC("RandomMessage", player, pair.Value.networkView.viewID.ToString() + "being sent through");
					pair.Value.networkView.SetScope(player, true);
					pair.Value.networkView.RPC("ResetNetworkView", pair.Key);
				}
			}

			//Test for player
			//if(false)
			//	return;

			Players[player] = null;
			PlayerNames[player] = user;


			if(!LoadPlayerState(id,player))
			{
				SpawnPlayer(id, GetSpawnLocation(), user);
			}

			GameObject itemGO = ItemManager.CraftItem("WoodStick", player);
			Players[player].networkView.RPC("ItemAttach", player, itemGO.networkView.viewID);

			//Loop through all items
			int itemCount = 0;
			foreach(GameObject go in GameObject.FindGameObjectsWithTag("Item"))
			{
				Item item = (Item)go.GetComponent(typeof(Item));

				if(!item.IsOwned)
				{
					ItemManager.Instance.networkView.RPC("SpawnItemRPC", player, item.name, go.transform.position, go.networkView.viewID);
					item.VerifyItemWithServer(player);
					itemCount++;
				}
			}
			//GameManager.SendMessage("Sent " + itemCount + " itemSpawns to " + PlayerNames[player], true);

			//Loop through all AI
			networkView.RPC("RandomMessage", player, "Sending AI through");
			foreach(GameObject go in GameObject.FindGameObjectsWithTag("AI"))
			{
				go.networkView.SetScope(player, true);
				AIManager.Instance.SpawnEnemy(go, player);
			}
		}
	}
コード例 #7
0
    private void RemotePlayerJoin(NetworkPlayer _NetClient, NetworkViewID _NetViewID)
    {
        Player joiningPlayer = new Player(_NetClient, _NetViewID, PlayerInputDevice.E_PlayerInputInvalid);
        m_Players.Add(joiningPlayer);

        Debug.Log("Remote player joined");
        Debug.Log("IP: "+ _NetClient.ipAddress + ", port:" + _NetClient.port + ", NetViewID: " + _NetViewID.ToString());
    }
コード例 #8
0
    private void LocalPlayerJoin(NetworkPlayer _NetClient, NetworkViewID _NetViewID)
    {
        Player joiningPlayer = null;
        foreach(Player pendingPlayer in m_PendingLocalPlayers)
        {
            if (pendingPlayer.m_NetViewID == _NetViewID)
            {
                System.Diagnostics.Debug.Assert(joiningPlayer.m_NetClient == _NetClient);

                joiningPlayer = pendingPlayer;
                break;
            }
        }
        System.Diagnostics.Debug.Assert(joiningPlayer != null);

        if (joiningPlayer != null)
        {
            m_Players.Add(joiningPlayer);
            m_PendingLocalPlayers.Remove(joiningPlayer);

            Debug.Log("Local player joined (input: " + joiningPlayer.m_LocalPlayerInput.ToString() + ")");
            Debug.Log("IP: "+ _NetClient.ipAddress + ", port:" + _NetClient.port + ", NetViewID: " + _NetViewID.ToString());
        }
        else
        {
            Debug.Log("Local player couldn't join: missing from the local players pending list!");
            Debug.Log("IP: "+ _NetClient.ipAddress + ", port:" + _NetClient.port + ", NetViewID: " + _NetViewID.ToString());
        }
    }
コード例 #9
0
    public void PlayerJoinAuthority(NetworkPlayer _NetClient, NetworkViewID _NetViewID)
    {
        Debug.Log("Player join on Authority");
        Debug.Log("IP: "+ _NetClient.ipAddress + ", port:" + _NetClient.port + ", NetViewID: " + _NetViewID.ToString());

        //@TODO: any team balancing or sthg to do here?
        //Remove NPC AIs if needed?

        //@FIXME: handle case where server is full?

        //player join on server
        PlayerJoin(_NetClient, _NetViewID);

        //player join on clients
        networkView.RPC("PlayerJoin", RPCMode.Others, _NetClient, _NetViewID);
    }