0

我正在使用 RPC 网络进行统一的游戏,我想在特定坐标中生成玩家。这是新玩家生成代码:`

[RPC]
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);
    `

那么我怎样才能在特定坐标中生成玩家呢?

4

1 回答 1

0

只需给出对象坐标。

GameObject newPlayer = Instantiate(playerPrefab, 
                                   pos, 
                                   Quaternion.identity) as GameObject;

使用上面的代码,您调用函数Instantiate()。该方法的参数为:

static function Instantiate (original : Object, 
                             position : Vector3, 
                             rotation : Quaternion) : Object 

position参数正是它所说的:新创建的对象的位置。如果您想查看一些示例,请单击此处获取脚本参考

因此,例如,如果您有坐标 505、7、369,则可以在实例化代码上方添加以下代码行:

Vector3 pos = new Vector3(505, 7, 369);
于 2013-06-13T10:28:13.083 回答