Birden çok silahı kullanabilen bir oyuncu nesnesine sahibim. Bir silah donatıldığında, onun dönüşümü ebeveyninin eline ayarlanır. Bir süredir bununla uğraştım ve hem ev sahibi hem de müşteri için işe yaramayacağım. Şu anda silahı sunucuya takmaya çalışıyorum ve tüm müşterilere ebeveynlerinin dönüşümünü ayarlamasını söylüyorum.Unity 5.1 Ağ - Ana makine ve tüm istemciler için bir nesne olarak bir nesne oluştur
public NetworkInstanceId weaponNetId;
[Command]
void Cmd_EquipWeapon()
{
var weaponObject = Instantiate (Resources.Load ("Gun"),
hand.position,
Quaternion.Euler (0f, 0f, 0f)) as GameObject;
weaponObject.transform.parent = hand;
NetworkServer.Spawn (weaponObject);
//set equipped weapon
var weapon = weaponObject.GetComponent<Weapon>() as Weapon;
weaponNetId = weaponObject.GetComponent<NetworkIdentity>().netId;
Rpc_SetParentGameobject (weaponNetId);
}
[ClientRpc]
public void Rpc_SetParentGameobject(NetworkInstanceId netID)
{
weaponNetId = netId;
}
Ve güncellemede ben silah bu sadece almaya çalışıyorum şu anda this..but yapmanın en iyi duruma yol değildir biliyorum
void Update() {
// set child weapon tranform on clients
if (!isServer) {
if (weaponNetId.Value != 0 && !armed) {
GameObject child = NetworkServer.FindLocalObject (weaponNetId);
if (child != null) {
child.transform.parent = hand;
}
}
}
dönüşümü güncelleştiriyorum Bu, herhangi bir şekilde çalışmak ve daha sonra onu düzeltmek için çalışmak. Basit bir görev olmalı gibi görünüyor.
Bu yöntemi kullanmaya çalışıyorum. netId’in değişmesinin bir nedeni var mı? Ben sadece 'OnStartClient' örneğinde olduğu gibi onu ayarlıyorum. –
Bunun böyle yapılacağına inanamıyorum .. lanet olası! –
Düzenlememi neden geri aldınız? Kodunuzun okunması için kodunuzu daha iyi hale getirdiğini vurguladım. – derHugo