Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET. Zároveň využij akci až 30 % zdarma při nákupu e-learningu - Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
C# .NET + discount 30

Diskuze: Jak předat Model mezi dvěma třídami.

Aktivity
Avatar
magic44
Tvůrce
Avatar
magic44:5.2.2014 16:11

Ahoj mám třídu Model3D (ze zdejšího tutorialu: http://www.itnetwork.cz/…odel-podruhe) a pak mám třídu Animace, která od Model3D dědí:

class Animace :Model3D
    {
        Kamera kamera;
        public Animace(Kamera kamera, Vector3 pozice, string nazev):base(pozice,nazev)
        {
            this.kamera = kamera;
        }
        AnimationPlayer player;
        AnimationClip clip;
        SkinningData SkinningData;

        protected override void Load()
        {
            SkinningData skinningData = Model.Tag as SkinningData;

            if (skinningData == null)
                throw new InvalidOperationException
                    ("This model does not contain a SkinningData tag.");
            player = new AnimationPlayer(skinningData);

            clip = SkinningData.AnimationClips["ArmatureAction"];
            player.StartClip(clip);

            base.Load();
        }

Na začátku Load musím z Modelu dostat Tag, ale takhle mi to nahlásí, že objekt není nastaven na instanci objektu.

Když místo toho dám SkinningData data=Skinning(); a Skinning je v Model3D:

public SkinningData Skinning()
       {
           return skinningData = Model.Tag as SkinningData;
       }

Tak to hází stejnou chybu.

Jak mám ten Model.Tag dostat do třídy Animace?

Editováno 5.2.2014 16:12
Odpovědět
5.2.2014 16:11
Moudrý člověk nechce být lepší než ostatní, ale lepší, než byl sám včera.
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
hanpari
Tvůrce
Avatar
hanpari:6.2.2014 12:28

Nikde tam nevidím, že bys nějaký Model inicioval. pokud Model.Tag není statická vlastnost třídy Model, tak program nemůže vědět, o jakou instanci se jedná.

 
Nahoru Odpovědět
6.2.2014 12:28
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.