Jump to content
UnitySpain
Sign in to follow this  
J_Daniel_86

[AYUDA NETWORK] Variables, aspecto y SetActive.

Recommended Posts

Hola a todos, tengo grandes problemas para entender el tema de Command, ClientRCP, etc...

Esto esta puesto en el objeto cabeza.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public class Aspecto : MonoBehaviour
{
    public Material[] material;
    Renderer rend;
	// Use this for initialization
	void Start () {
        rend = GetComponent<Renderer>();
	}
	
	// Update is called once per frame
	void Update () {
        if (Cabeza.aspecto == 0)
        {
            rend.sharedMaterial = material[0];
        }
        else if (Cabeza.aspecto == 1)
        {
            rend.sharedMaterial = material[1];
        }
    }
}

Y esto en el objeto Player por que si no el SyncVar me tira error:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;

public class Cabeza : NetworkBehaviour {

    public static float aspecto = 0;

    [SyncVar]
    public float aspectocabeza = 0;
    // Use this for initialization
    void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
    }
    public void AspectoCabeza()
    {
            if (aspecto == 0)
            {
            Cmd_AspectoCabeza2();
                aspecto = 1; ;
            }
            else if (aspecto == 1)
            {
            Cmd_AspectoCabeza1();
                aspecto = 0;
            }
    }
    [Command]
    private void Cmd_AspectoCabeza1()
    {
        if (!isServer) return;
        aspectocabeza = 0;
    }
    [Command]
    private void Cmd_AspectoCabeza2()
    {
        if (!isServer) return;
        aspectocabeza = 1;
    }
}

No se, no paro de darle vueltas al código ya no se ni lo que pongo, como no entiendo muy bien el tema de command y tal... Solo quiero que al pulsar un botón en plan... botón cabeza roja (textura de cabeza en versión rojo) cambie a ese material y también si al Player quiero cambiarle partes del cuerpo usando SetActive pueda cambiar la cabeza y que no solo lo vea yo, si no que se vea en todos los clientes.

Un poco desesperado estoy... me lleva loco esto, ya tengo puesto al player, la vida, el disparo, enemigos, animaciones y tal y todo funciona ok en multiplayer, se ve bien, solo que ahora estos detalles... a ver si alguno pudiera echarme una mano, creo que es un tema interesante que podría ayudar a mucha gente no solo a mi, gracias de antemano!!

 

P.D: No soy programador he aprendido a la fuerza de no parar de mirar tutoriales y de hacer cosas así que se me escapan muchas cosas de codigo pero mas o menos lo llego a entender bien aunque me cueste construirlo. Por ejemplo me volví loco pero sin ayuda puse que los navmeshagent siguieran a los players según distancia en el modo multijugador todo un logro para mi jajajajajaja.

Share this post


Link to post
Share on other sites

Buenas!

No se si lo tendrás resuelto ya pero, la función: public void AspectoCabeza(), no la estas llamando des de ninguna parte. Puede ser ese el problema?

Share this post


Link to post
Share on other sites
hace 5 horas, datmos said:

Buenas!

No se si lo tendrás resuelto ya pero, la función: public void AspectoCabeza(), no la estas llamando des de ninguna parte. Puede ser ese el problema?

Madre mia... que fallo tan absurdo... lo pruebo y comento!! gracias!!

Share this post


Link to post
Share on other sites

jejeje, a mi a veces me pasa....

hago una funcion para algo... pero se me olvida llamarla... 

y te quedas todo extrañado diciendo... "¿pero por que no funciona??"

hasta que te das cuenta de que no la estas llamando.... jejeje

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...