Jump to content
Unity Insider Forum
Sign in to follow this  
frkx316

Script im Script aufrufen/ (für das nicht Statische Feld ist ein Objektverweis erforderlich)

Recommended Posts

Hallo 🖐️ 

ich stelle vielleicht eine dumme Frage, aber irgenwie sehe ich nicht was ich falsch mache.

Ich habe versucht mittels Script die Position der Kamera abzurufen.

Aber wenn ich den Vektor mit Werten füttern will bekomme ich die Fehlermeldung:

  Für das nicht statische Feld, die Methode oder die Eigenschaft "Camposition.Campos()" ist ein Objektverweis erforderlich.

Aber eigentlich dachte ich das ein Objektverweis bereits im Code steckt????

hierzu noch die 2 Scripts:

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

public class Camposition : MonoBehaviour {

	public Vector3 Campos()
    {
        Vector3 campos = transform.position;
        return campos;
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Mouseposition : MonoBehaviour {

    Camposition campos;
   
	void Update () {

          if (Input.GetMouseButtonDown(0))
          {
              Debug.Log("Mausposition");
            Vector3 mousepos = Input.mousePosition;
            Debug.Log(mousepos.x);
            Debug.Log(mousepos.y);
            Debug.Log(mousepos.z);
        }
        if (Input.GetMouseButtonDown(1))
        {
            Debug.Log("Planeposition");
            Vector3 obpos = transform.position;
            Debug.Log(obpos.x);
            Debug.Log(obpos.y);
            Debug.Log(obpos.z);
        }
        if (Input.GetMouseButtonDown(1))
        {
            Debug.Log("Camposition");
            campos = GameObject.Find("Main Camera").GetComponent<Camposition>();
            Vector3 camp = Camposition.Campos();
            Debug.Log(camp.x);
            Debug.Log(camp.y);
            Debug.Log(camp.z);
        }
    }
}

Vielen Dank schon einmal im vor raus für eure Hilfe :)  

Share this post


Link to post
Share on other sites

Falsch:

Camposition.Campos();

Richtig:

campos.Campos();

Du willst ja von deinem gefundenen Objekt etwas erfragen, nicht von der Klasse selbst.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×