我们都知道,Unet的文档很缺乏。
我很想得到这个答案,希望它可以帮助其他人稍后搜索。
以下是我要做的事情:
问题是TargetRPC需要一个NetworkConnection值,但唯一记录的方法是使用该对象的ConnectToClient - 我没有,我需要得到。
如何将我在客户端点击的播放器识别为可以转换为正确的NetworkConnection值的方式。
在本地玩家权限对象上:
$oSymbol = new symbolObj($map, "imtest");
$oSymbol->set("type", MS_SYMBOL_PIXMAP);
$oSymbol->setImagePath('symbols/images/star-symbol.png');
$oSymbol->set("filled", MS_TRUE);
$oSymbol->set("sizex", 1);
$oSymbol->set("sizey", 1);
$oSymbol->set("inmapfile", MS_TRUE);
//$style->set("symbolname", "mydash");
/*
* @ create CLASS for LAYER
*/
$class = new ClassObj($layer);
if ($type_feature == 'polygon') {
//die('polygon');
$symbol = 'mapinfo-sym-41';
$symbol_style_opacity = 100;
$symbol_style_color = array(0, 0, 255);
$class->updateFromString("
CLASS
STYLE
SYMBOL 'imtest'
COLOR 0 0 255
ANGLE 30
SIZE 10
WIDTH 1
OPACITY 100
END
END
");
}
答案 0 :(得分:2)
[Command]
void CmdIHitSomeone(int amountToHit, NetworkIdentity target)
{
TargetLetYourVictimFeelIt(target.connectionToClient , amountToHit);
}
[TargetRPC]
void TargetLetYourVictimFeelIt(NetworkConnection target, int amount)
{
//do something bad here
}
// call your command by getting NetworkIdentitiy component of your target/enemy
GameObject target;
CmdIHitSomeone(10, target.GetComponent<NetworkIdentity>());
答案 1 :(得分:1)
NetworkConnection connnection = NetworkServer.objects[netId].connectionToClient;