Jump to content
Unity Insider Forum

Chiled-Objekte von Sprites per Scipt laden


coldstone

Recommended Posts

Hallo zusammen,

 

ich habe ein kompliziertes Problem, zumindest von meiner sicht aus betrachtet. 🙂

Ich erstelle gerade eine 360° VR-Anwendung. Habe jetzt ein Sprite Objekt, welches 3 mal in der Szene mit dem selben Namen geladen wird.

Um es vielleicht besser zu verdeutlichen:  

GameObject = Tisch

SpriteObject = Mappe

Nun wird dem Objekt "Tisch" 3 chield-objekte mit dem Sprite erstellet.

Also

Tisch
	Mappe
	Mappe
	Mappe

Die frage ist, wie kann ich mit den einzelnen Objekten Arbeiten? Ich möchte ein einfaches Hovern der Objekte erzeugen. Habe jetzt mehrere ansätze versucht aber leider ohne erfolg.

Habe dem Sprite einen TagNamen gegeben. Bsp. "ImageSmall" Somit haben ja alle drei "Mappen" jeweils den Tag "ImageSmall". Was auch jeweils in der Szene auch zu sehen ist.

Nun ist es aber so, das nur das erste Kindobjekt "Hovert" und die anderen beiden nicht. Ich gehe davon aus das er immer ein bezug auf das erste Kind-Element nimmt und die beiden anderen nicht betrachtet.

 

Hier mal mein RayCast Code:

public class RaycastRightHand : MonoBehaviour
{  
    public bool CheckImageSelected;
  
	void FixedUpdate()
    {

        ImageSmall = GameObject.FindGameObjectWithTag("ImageSmall");
        int layerMask = 1 << 8;

        // This would cast rays only against colliders in layer 8.
        // But instead we want to collide against everything except layer 8. The ~ operator does this, it inverts a bitmask.
        layerMask = ~layerMask;
        // Draws a 5 unit long red line in front of the object

        RaycastHit hit;

        // Does the ray intersect any objects excluding the player layer
        if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, Mathf.Infinity, layerMask))
        {
            if(hit.collider.GetComponentInChildren<Collider>() && !CheckImageSelected)
            {
                hit.transform.GetComponent<Animator>().enabled = true;
                hit.transform.GetComponent<Animator>().Play("TriggerImage1ViewFadeIn", -1, 0f);
                CheckImageSelected = true;
            }
        else if(CheckImageSelected == true)
        {
            ImageSmall.GetComponent<Animator>().Play("TriggerImage1ViewFadeOut", -1, 0f);
            CheckImageSelected = false;
        }

 

Vielleicht hat jemand eine  Rat wie ich es anders machen kann.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefĂĽgt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rĂĽckgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...