Steht alles im der Scripting Referenz:

https://docs.unity3d.com/ScriptReference/Rigidbody.html

...zur Antwort

Vielleicht mal mit ner Rotation versuchen!

Ich habe keine Ahnung was du da tust, aber einen Teleportation hört sich schon rein logisch falsch an.

Bei Rigidbody einen Force drauf geben, ansonsten mit Rotate oder RotateAround. Eines davon ist obsolete. Einfach mal die Scripting Referenz nutzen!

...zur Antwort

Einfach Force mit -1 multplizieren.

...zur Antwort

Du könntest ein Plugin testen. Ja ist kostenlos.

https://assetstore.unity.com/packages/tools/input-management/secured-playerprefs-32357

Alternativ könntest du keine Playerprefs benutzen sondern z.b. Scriptable Objects oder Binary Formatting.

Verhindern kann man cheating nicht, aber erschweren.

Es gibt auch einige kostenlose "Anti Cheat Plugins" teste dich einfach durch.

...zur Antwort
bool isDashing;
float speed = 2;
float normalSpeed = 2;
float dashSpeed = 5;
float dashTime = 2;

void Update()
{
    if (Input.GetKeyDown(KeyCode.LeftShift) && !isDashing)
    {
        Debug.Log("Left Shift key was pressed");
        isDashing= true;
        speed = dashSpeed;
        Invoke("ResetDash",dashTime);
    }
}

void ResetDash()
{
    speed = normalSpeed;
    isDashing= false;
}

Am Handy geschrieben, ich denke du bekommst ne Idee. Beschäftige dich einfach mal mit der Materie, so schwer is nicht.

...zur Antwort

Je nachdem was du für Maps gestaltest, kannst du mit den Terrain Tools in Unity beginnen. Z.t. gibt es ja auch freie Modelle wie Bäume, Gras etc, die schon fertig für Unity sind.

Wenn bestimmte Stile gefordert sind, dann sollten für Character, Häuser und andere Assets immer 3D Programme genutzt werden. Eine gesamte Map in 3D fertig zu machen, halte ich für ungeeignet, ist aber durchaus möglich.

Spieleprogrammierung an sich hat aber nichts mit 3D zu tun, und nichts sollte dich davon abhalten Standart Objekte zu nutzen, die in Unity mitgeliefert werden.

Für erste Prototypen und Demos braucht man einfach nicht mehr.

...zur Antwort
pickUp += Mathf.RoundToInt(float);

https://docs.unity3d.com/2017.1/Documentation/ScriptReference/Mathf.RoundToInt.html

Je nach gewünschtem Runden der gehen hier auch Alternativen wie CeilToInt usw.

...zur Antwort

Für die Auswertung hast ja sicher einen Array mit Daten drin.

Wenn das gewähle Array Feld also schon Daten enthält, blocke den Input oder gebe einen Fehler zurück.

...zur Antwort

Vor allem als Anfänger empfielt sich immer Probleme in kleinere aufzuspalten.

Was ist ein Wort? Ein string oder ein char Array.

Was ist ein Array? Eine Ansammlung von Daten eines Datentypen oder einer Klasse in einer Art Tabelle.

Nun überlege: Wie zerlege ich nun ein Wort in einzelde Buchstaben?

Welche Funktionen bietet C# vielleicht schon dafür an?

string dasWort = "Baum";//das zu spiegelnde Wort
string dasGespiegelteWort ="";

string[] dasZerlegteWort = dasWort.Select(bs => bs.toString()).toArray();

Jetzt haben wir oben eine Array des gesuchten Baums zerlegt über die sogenannte Lamda Expression. Zu finden im System.Linq namespace.

Nun muss das zerlegte Wort gespiegelt oder auch "umgekehrt" werden.

Englisch ist dein Freund! Umkehren kann man mit Reverse übersetzen und auch hier gibts es schon fertige Funktion oder nicht? z.b.

Array.Reverse(dasZerlegteWort);

Das geht auch auf sehr vielen anderen Wegen!

z.b. über eine Rückwärtslaufende For-Schleife:

for(int i == dasZerlegteWort.Length-1;i>=0;i--)
{
  dasGespiegelteWort += dasZerlegteWort[i];
}

Beschäftige dich doch einfach mal mit den Sachen, Du wirst sehen, so schwer ist das nicht.

...zur Antwort

Vielleicht fängst du einfach mal mit der Grid Komponente an, und liest dich mal durch.

https://docs.unity3d.com/Manual/class-Grid.html

Dann noch alles wichtige hier:
https://docs.unity3d.com/ScriptReference/Grid.html

Und wie man einen Input macht, sollte dir ja bereits bekannt sein.

...zur Antwort
Unity Character Controller verbuggt?

Hey Leute,

ich habe mir gerade dieses:

(44) Basic Third Person Character Controller in Unity - Unity C# Tutorial 2022 - YouTube

Tutoral für third person controller angeschaut. Nach programmierung der Scripts habe ich aber zwei Bugs:

Mein Character "slided" weiter über den Boden auch wenn ich aufhöre w zu drücken. Man kann sich das vorstellen wie auf einer Eisbahn.

Obwohl ich eine Rigidbody eingefügt habe, fällt der Character nicht auf den Boden! Mein leicht abgeänderter Code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class player : MonoBehaviour
{
  public Animator playerAnim;
  public Rigidbody playerRigid;
  public float w_speed, wb_speed, olw_speed, rn_speed, ro_speed;
  public bool walking;
  public Transform playerTrans;
  void FixedUpdate()
  {
    if (Input.GetKey(KeyCode.W))
    {
      playerRigid.velocity = transform.forward * w_speed * Time.deltaTime;
    }
    if (Input.GetKey(KeyCode.S))
    {
      playerRigid.velocity = -transform.forward * wb_speed * Time.deltaTime;
    }
  }
  void Update()
  {
    if (Input.GetKeyDown(KeyCode.W))
    {
       playerAnim.SetTrigger("walk");
       playerAnim.ResetTrigger("idle");
       walking = true;
       //steps1.SetActive(true);
    }
    
    if (Input.GetKeyUp(KeyCode.W))
    {
      playerAnim.ResetTrigger("walk");
      playerAnim.SetTrigger("idle");
      walking = false;
  //steps1.SetActive(false);
    }
    
    if (Input.GetKeyDown(KeyCode.S))
    {
      playerAnim.SetTrigger("walk");
      playerAnim.ResetTrigger("idle");
      walking = true;
    }
    
    if (Input.GetKeyUp(KeyCode.S))
    {
      playerAnim.ResetTrigger("walk");
      playerAnim.SetTrigger("idle");
      walking = false;
    }
    
    if (Input.GetKey(KeyCode.A))
    {
      playerTrans.Rotate(0, -ro_speed * Time.deltaTime, 0);
    }
    
    if (Input.GetKey(KeyCode.D))
    {
      playerTrans.Rotate(0, ro_speed * Time.deltaTime, 0);
    }
  }
}

Danke für alle Antworten

...zum Beitrag

Wenn ich jetzt raten müsste, würde ich sagen, du wertest "walking" nicht aus.

sowas wie:

if(!walking)
{
  playerRigid.velocity = Vector3.zero;
}

Alternativ warum der player nicht runterfällt, hat ggf. was mit der Einstellung: useGravity im Rigidbody zu tun oder der Mass (Masse).

...zur Antwort

Stelle den Canvas Scaler auf Scale with Screensize und versuchs nochmal.

Wichtig sind aber auch die Anchors der einzelnden UI Elemente

...zur Antwort