我正在做一个与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);
`
那么我如何在特定的坐标下产生一个玩家呢?
发布于 2013-06-13 10:28:13
只需给出对象坐标即可。
GameObject newPlayer = Instantiate(playerPrefab,
pos,
Quaternion.identity) as GameObject;
使用上面的代码,可以调用函数Instantiate()
。此方法的参数为:
static function Instantiate (original : Object,
position : Vector3,
rotation : Quaternion) : Object
position
参数就是它所说的:新创建的对象的位置。如果你想看一些例子,click here for the Script Reference。
因此,例如,如果您有坐标505,7,369,您可以在实例化代码上添加以下代码行:
Vector3 pos = new Vector3(505, 7, 369);
https://stackoverflow.com/questions/17084266
复制相似问题