Après environ 7heures bloqués sur un problème, énormément de cheveux en moins, je viens poster ici le petit problème que je rencontre.
Voici les lignes intéressantes sur le script de l'item :
Code : Tout sélectionner
static var playersinv : Inventory;
function MoveMeToThePlayer()
{
canGet = false;
gameObject.SetActive(true); //It's normally best to disable the individual components so we can keep item effects and update functions alive.
if (GetComponent(MeshRenderer) != null)
{
GetComponent(MeshRenderer).enabled = false;
}
if (GetComponent(Collider) != null)
{
GetComponent(Collider).enabled = false;
}
GetComponent("Item").enabled = true;
transform.parent = playersinv.itemHolderObject;
transform.localPosition = Vector3.zero;
transform.rigidbody.isKinematic = true;
networkView.RPC("SyncPickUp", RPCMode.All, transform.localPosition);
}
Code : Tout sélectionner
@RPC
function SyncPickUp(location : Vector3){
//location = transform.location;
canGet = false;
gameObject.SetActive(true); //It's normally best to disable the individual components so we can keep item effects and update functions alive.
if (GetComponent(MeshRenderer) != null)
{
GetComponent(MeshRenderer).enabled = false;
}
if (GetComponent(Collider) != null)
{
GetComponent(Collider).enabled = false;
}
GetComponent("Item").enabled = true;
transform.rigidbody.isKinematic = true;
transform.parent = playersinv.itemHolderObject;
}
Code : Tout sélectionner
static var itemHolderObject : Transform;
function Start ()
{
itemHolderObject = gameObject.transform;
Le problème étant que l'item s'attache au mauvais joueur. J'ai réfléchit à une façon pour déterminer le bon joueur(avec networkView.isMine), et donc attribuer le bon parent, mais je ne vois pas comment faire.
Si quelqu'un peut éclairer ma lanterne, ce serait très gentil de sa part !
Le script n'est pas de moi, je le "convertis" en multijoueur.
Edit: bon j'ai trouvé, j'envois l'id du networkview à tout le monde, et avec networkView.Find je parente le transform avec l'id.