Unity Script funktioniert nicht?

1 Antwort

Niemals 'LoadByIndex' verwenden! Das ist furchtbar unflexibel. Wie du das besser machst, siehst du hier: http://answers.unity3d.com/questions/836635/can-ui-buttons-load-scenes.html

Was bei dir konkret schief geht:

public void LoadByIndex(int 1)
{
SceneManager.LoadScene (1);
}

Wundert mich, dass Unity da nicht schreit. "1" dürfte eigentlich kein zulässiger Name sein. Versuche mal so etwas wie:

public void LoadByIndex(int index)
{
SceneManager.LoadScene (index);
}

und gib den Wert im Button unter OnClick ein, entweder so wie hier https://docs.unity3d.com/ScriptReference/UI.Button-onClick.html über Code oder, besser, so wie http://answers.unity3d.com/questions/942622/how-do-you-call-a-function-with-a-button-unity-5-u.html

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

Unity 5 Scrollbar bzw. Healthbar C#?

Ich habe ein Problem ich möchte eine Lebens anzeige machen aber sie funktioniert nicht richtig, wenn man den Gegner trifft wird nichts an der Anzeige abgezogen aber wenn er tot ist dann ist die Anzeige auch leer. Hier der Code :

using UnityEngine; using UnityEngine.Networking; using System.Collections; using UnityEngine.UI;

public class Player : NetworkBehaviour {

[SyncVar]
private bool _isDead = false;
public bool isDead
{
    get { return _isDead; }
    protected set { _isDead = value; }
}

[SerializeField]
private int maxHealth = 100;

[SyncVar]
private int currentHealth;
public Scrollbar healthbar;

[SerializeField]
private Behaviour[] disableOnDeath;
private bool[] wasEnabled;

public void Setup()
{
    wasEnabled = new bool[disableOnDeath.Length];
    for (int i = 0; i < wasEnabled.Length; i++)
    {
        wasEnabled[i] = disableOnDeath[i].enabled;
    }

    SetDefaults();
}

[ClientRpc]
public void RpcTakeDamage(int _amount)
{
    if (isDead)
        return;

    currentHealth -= _amount;

    healthbar.size = currentHealth;

    Debug.Log(transform.name + " now has " + currentHealth + " health.");

    if (currentHealth <= 0)
    {
        Die();
    }
}

private void Die()
{
    isDead = true;

    for (int i = 0; i < disableOnDeath.Length; i++)
    {
        disableOnDeath[i].enabled = false;
    }

    Collider _col = GetComponent<Collider>();
    if (_col != null)
        _col.enabled = false;

    Debug.Log(transform.name + " is DEAD!");

    StartCoroutine(Respawn());
}

private IEnumerator Respawn()
{
    yield return new WaitForSeconds(GameManager.instance.matchSettings.respawnTime);

    SetDefaults();
    Transform _spawnPoint = NetworkManager.singleton.GetStartPosition();
    transform.position = _spawnPoint.position;
    transform.rotation = _spawnPoint.rotation;

    Debug.Log(transform.name + " respawned.");
}

public void SetDefaults()
{
    isDead = false;

    currentHealth = maxHealth;

    for (int i = 0; i < disableOnDeath.Length; i++)
    {
        disableOnDeath[i].enabled = wasEnabled[i];
    }

    Collider _col = GetComponent<Collider>();
    if (_col != null)
        _col.enabled = true;

}

}

würde mich sehr über eine schnelle und hilfreiche Antwort freuen

...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 funktionieren die Unity Scripts manchmal nicht?

Wenn ich ein neues Script in Unity erstelle fehlen dem script irgentwie die ganzen dinge aus Unity obwohl ich "using UnityEngine;" drin hab. Ich kann zum beispiel kein public game object und eben die ganzen anderen dinge von Unity erstellen. Sie bleiben immer einfach weiß und werden mir auch nicht vorgeschlagen. Wenn ich dann ein neues script mach geht es machnachmal und manchmal nicht.

...zur Frage

Wie kann ich irgendwas einblenden lassen, wenn ich bei einem UI Dropdown irgendwas auswähle(Unity 5 free)?

Ich habe ein Panel mit einem Dropdown erstellt. Ich habe zu diesem Dropdown 3 Panels als Child hinzugefügt. Ich will jetzt jeweils eins der Panels einblenden wenn ich eine der Auswahlmoglichkeiten auswähle. ich arbeite noch nicht lange mit Unity, habe aber mit einem Script angefangen. Es kann komplett falsch sein, also bitte ich um Ausbesserung von dem Script. Ich habe einfach Namen genommen die man leicht unterscheiden kann.


import UnityEngine.UI;

var panalTastatur : Panal;

var panalXBox : Panal;

var panalPS4 : Panal;

function Update () {

if Dropdown.value = 0() {
    panalTastatur.gameObject.SetActive(true);
}

if Dropdown.value = 1() {
    panalXBox.gameObject.SetActive(true);
}

if Dropdown.value = 2() {
    panalPS4.gameObject.SetActive(true);
}

}

...zur Frage

Was möchtest Du wissen?