Unity, Registrierung?

Hallo,

ich bin gerade dabei ein Unity Spiel zu programmieren. In dem Spiel soll man sich registrieren können, dabei benutze ich PlayFab. Bei dem Test der Registrierung läuft etwas schief und ich weis einfach nicht wieso. Vielleicht könnt ihr mir weiter helfen?

Danke für jede Antwort.

Unity:

Das Spiel:

Das Script:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using PlayFab.ClientModels;

using PlayFab;

using System;

using UnityEditor.PackageManager.Requests;

using UnityEngine.UI;

using TMPro;

using PlayFab.PfEditor;

public class PlayFabLoginScript : MonoBehaviour {

  public TextMeshProUGUI regPassword, regUsername, regEmail;

  public GameObject regPanel;

  // Start is called before the first frame update

  void Start()

  {

    var request = new LoginWithCustomIDRequest { CustomId = "GettingStardedGuide", CreateAccount =true};

    PlayFabClientAPI.LoginWithCustomID(request, OnLoginSucces, OnLoginFailure);

  }

  private void OnLoginFailure(PlayFabError obj)

  {

    Debug.Log("Es ist etwas schief gelaufen");

  }

  private void OnLoginSucces(LoginResult obj)

  {

    Debug.Log("API Call hat funktioniert");

  }

  public void Register()

  {

    var request = new RegisterPlayFabUserRequest();

    request.TitleId = PlayFabSettings.TitleId;

    request.Email = regEmail.text;

    request.Username = regUsername.text;

    request.Password = regPassword.text;

    PlayFabClientAPI.RegisterPlayFabUser(request, OnRegisterResult, OnPlayFabError);

     

  }

  private void OnPlayFabError(PlayFabError obj)

  {

    print("Error:" + obj.Error);

  }

  private void OnRegisterResult(RegisterPlayFabUserResult obj)

  {

    print("Registrierung hat funktioniert");

    regPanel.SetActive(false);

  }

Bild zum Beitrag
C Sharp, Code, Programmiersprache, Spieleentwicklung, Visual Studio, Unity
Warum wird der Raycast bei mir die ganze Zeit als falsch angezeigt und was wäre eine mögliche Lösung des Problems?

Hallo, ich arbeite Momentan an einem Super Mario 2D Spiel mit Unity. Dabei habe ich diesen Code geschrieben:

private void Update()

{

   HorizontalMovement();

   grounded = rigidbody.Raycast(Vector2.down);

   if (grounded)

   {

      GroundedMovement();

   }

   if (velocity.x > 0f)

   {

      transform.eulerAngles = Vector3.zero;

   }

   else if (velocity.x < 0f)

   {

      transform.eulerAngles = new Vector3(0f, 180f, 0f);

   }

   ApplyGravity();

}

private void HorizontalMovement()

{

   inputAxis = Input.GetAxis("Horizontal");

   velocity.x = Mathf.MoveTowards(velocity.x, inputAxis * moveSpeed, moveSpeed * Time.deltaTime);

   if (rigidbody.Raycast(Vector2.right * velocity.x))

   {

      velocity.x = 0f;

   }

   if (velocity.x > 0f)

   {

      transform.eulerAngles = Vector3.zero;

   }

   else if (velocity.x < 0f)

   {

      transform.eulerAngles = new Vector3(0f, 180f, 0f);

   }

}

Dabei habe ich dann das Problem, dass der Raycast(dick gedruckt) immer unterstrichen wird und dabei steht dann:

"Rigidbody2D" enthält keine Definition für "Raycast", und es konnte keine zugängliche Raycast-Erweiterunsmethode gefunden werden, die ein erstes Argument vom Typ "Rigidbody2D" akzeptiert (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis).

Aufjedenfall weiß ich nicht was ich damit anfangen soll und ich hoffe, dass mir jemand vielleicht ein Verbesserungsvorschlag geben kann.

Danke

Spieleentwicklung, Unity2D

Meistgelesene Fragen zum Thema Spieleentwicklung