Script zum ändern vom Text funktioniert nicht: error CS1061: Type ' Text' does not contain a definition for 'text'?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Dein Problem hier ist, dass es den Datentyp mit dem Namen "Text" schon gibt, siehe https://docs.unity3d.com/ScriptReference/UI.Text.html den du vermutlich auch benutzen möchtest, da du für diesen ein Feld anlegst.

Dein Gedankengang ist schon richtig, du muss deine eigene Klasse aber anders nennen, denn in deinem Fall hier wird nicht auf den Datentyp "Text", das UI-Element, zugegriffen, sondern auf deinen eigenen Datentyp namens "Text", der eben keine Definition für "text" enthält.

Benenne deine Klasse einfach um, dann sollte es klappen:

public class MeinText : MonoBehaviour {
public Text txt;

void Update () {
txt.text = "test";
}
}

Ups xD. Das hab ich die ganze Zeit übersehen. Hätte ich auch selber drauf kommen können... Aber danke für die Hilfe!

0
@Lukba

Bitte, da müsste der Editor in der Unity Konsole normalerweise auch anzeigen, dass die Klasse mit diesem Namen im gleichen Namespace schon definiert ist. Hat er vielleicht nicht, weil Text aus UnityEngine.UI kommt.

0

Die Eigenschaft text gibt es in der Klasse MonoBehaviour nicht. Siehe hier:
https://docs.unity3d.com/ScriptReference/MonoBehaviour.html

Vielleicht solltest du ein anderes Control verwenden. Sieh einfach die Dokumentation von Unity durch.

Leider bringt mir dies nichts. Kannst du mir sagen was ich brauche?

MFG

0

Wie kann man die x-Rotation in Unity (C#) begrenzen?

Ich hab da ein Problem: Ich will, dass sich mein Objekt nur bis zu einem bestimmten Grad (89°) auf der x-Achse rotiert.

Ich bekomme es hin, es zu rotieren, aber nicht zu begrenzen. Mit diesem Script rotiere ich mein Objekt:

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

public class Rotation : MonoBehaviour {

    public float RotationSpeedx = 50;

    private float xrot;

    // Use this for initialization
    void Start() {
    }

    // Update is called once per frame
    void Update() {
        xrot = (Input.GetAxis("Mouse Y") * RotationSpeedx * Time.deltaTime);
        transform.eulerAngles = new Vector3(transform.eulerAngles.x - xrot, transform.eulerAngles.y, transform.eulerAngles.z);
    }
}
...zur Frage

Unity 5 C# Script Hilfe // Player immer nach rechts bewegen lassen ohne irgendein Knopf drücken zu müssen?

Hey Community irgendwelche Auskenner in Unity ? In der Sprache C#

Ich möchte nämlich ein Spiel machen wo der Player immer nach Rechts automatisch läuft. Ich bedanke mich für jeden der Antwortet.

Mein bisheriges PlayerController Script:

using UnityEngine; using System.Collections;

public class PlayerController : MonoBehaviour {

public float maxSpeed = 4;
public float jumpForce = 550;

private Rigidbody2D rb2d;
private bool jump = false;

// Use this for initialization
void Start () {
    rb2d = GetComponent<Rigidbody2D>();

}

// Update is called once per frame
void Update () {
    if (Input.GetButtonDown ("Jump"))
        jump = true;

}

void FixedUpdate()
{
    float hor = Input.GetAxis ("Horizontal");
    rb2d.velocity = new Vector2 (hor * maxSpeed, rb2d.velocity.y);

    if(jump)
    {
        rb2d.AddForce (new Vector2(0,jumpForce));
        jump = false;
    }
}

}

...zur Frage

Wie bearbeitet man die Farbe von einzelnen Text objekten in Unity?

Ich habe ein Script, bei dem Strings in einer Liste eingegeben werden und dann in einem Unity UI Text Component angezeigt werden, alles funktioniert bis jetzt schon und gut, doch ich möchte auch die Farben und den Style vom Text ändern, wie geht das? Geht das überhaupt mit meiner Variante? Wenn nicht wie dann?

public class News : MonoBehaviour {

public Text NewsBar;
public Text NewsLog;

public Animator NewsAnimator;

public string currentNewsReport;
public List <string> NewsReports;
public string[] NewsReportsArray;
public string NewsReportsString;

void Start(){
    AddNewsReport ("<b>News Log:</b\n");
    AddNewsReport ("<color=#00ffffff>You started playing Domination...</color=#00ffffff>");
}

public void AddNewsReport(string NewsReport){
    currentNewsReport = NewsReport;
    NewsReports.Add (currentNewsReport);
    NewsReportsArray = NewsReports.ToArray ();
    NewsReportsString = string.Join ("\n", NewsReportsArray);
    NewsLog.text = NewsReportsString;
}

public void PlayNewsReport(string NewsReport){
    NewsAnimator.Play("News Animation", -1, 0);
    NewsBar.text = NewsReport;
    AddNewsReport (NewsReport);
}

}

...zur Frage

Warum funktioniert mein C# Code nicht?

Ich habe in Visual Studio eine neues Projekt als Konsolenanwendung erstellt und dieses Code eingegeben:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Console;

using System;

using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Console;

namespace ConsoleApplication1

{

class Program

{

    public static void Main(string[] args)

    {
        WriteLine("Hallo Welt");

    }

}

}

Write Line und System.Console sind jedoch rote unterstrichen und Visual Studio sagt, ... ist im aktuellen Kontext nicht vorhanden. Warum?

...zur Frage

Was möchtest Du wissen?