Wie programmiert man einen virtuellen 3D-Raum ohne Game Engine?

Heutzutage haben kleinere Entwickler den Vorteil, dass es Game Engines gibt, die einen den großteil der eigentlichen Arbeit abnehmen und bereits beim starten eines neuen Projektes einen leeren und fertigen 3D Raum anzeigen, wo Sie nur noch ihre mit Blender z.b. modelierten Objekte reinplatzieren müssen und simple Script Dateien programmieren müssen um die reinplatzierten Objekte aufgaben zu geben. Wie das bewegen auf Koordinaten sobald der Spieler W,A,S,D benutzt. Dann braucht man das "Spiel" nur noch exportieren und man hat eine ausführbare .exe datei die einen 3D Raum beinhaltet mit einem objekt das man steuern kann.

Aber das was mich interessiert ist, wie genau macht man den eigentlich den leeren Raum den es bereits schon immer als Vorlage gibt bei Game Engiens wie Unity oder Unreal ENgine? Allein Blender um überhaupt die 3D Modelle zu machen ist ja schon selber ein vorgefertigter 3D Raum der als Werkzeug dient um Objekte zu modellieren!

Also wie programmiert man eigentlich überhaupt denn 3D Raum den man überhaupt zuerst braucht um darauf dann ein spiel bauen zu können?

Um das ganze zu verbildlichen:

Das hier ist ein 3D Raum worin man sich frei umschauen kann und das jeder hat der ein neuen und Leeren Projekt startet in einer Engine wie Unity:

Aber wie macht man denn überhaupt den vorgefertigten 3D Raum / die eigentliche Scenen-Ansicht die man im Editor bereits von Unity hat?

Benutzt man dafür ein Visual Studio-Forms Projekt um überhaupt einen 3D Raum aus dem Nichts zu erschaffen oder wie macht man den eigentlichen leeren 3D Raum überhaupt indem dann später erst alles stattfinden kann?

Bild zum Beitrag
Computer, Technik, Programmierer, programmieren, Programmiersprache, Technologie, Unity 3D, Visual Studio, Unity, Unreal Engine, Unity Engine, Unreal Engine 4, Spiele und Gaming
Unity - Wie verschiebe ich Objekte in einer Animation?

Ich habe mit "STRG + D" eine Kopie von dem HauptOrdner gemacht um eine Animation davon zu erstellen wie üblich. Wenn ich aber versuche mit Hilfe der Verschiebungspfeile, oder die Position per Zahlenfenster von dem Mädchen Playermodel, auf den Panzer zu verschieben. Wird Sie jedes mal zurück gesetzt sobald ich mit der maus auf irgend eine art und weise in dem "Animation"s bereich einklicke oder einwirke...

Wie kann ich machen das dass Mädchen-Playermodel auf dem Panzer ist und bleibt und nicht jedes mal auf Bodenhöhe im Panzer drinnen steckt sobald ich im späteren spielverlauf die animation, die ich versuche zu machen, ausführe?

Mir ist übrigends egal das Sie in der Motorcykle position ist weil es eigentlich optisch sogar besser aussieht wen sie sitzend ist wenn sie nur zur Hälfte aus dem Panzer oben raus schauen soll, Als im stehen... Nur ist mein Problem das ich sie nicht auf den Panzer verschieben kann, da sie entweder vor der "anim." datei spätestens wieder auf bodenhöhe zurück kehrt (siehe Bilder), wenn ich dann eine "anim." Datei erstelle und wenn ich es während der "anim." Datei mache, sie sich dann nicht verschieben lässt weil sie nach jeder weiteren interaktion in den Animation, Sie zurück auf ihre position X = 0, Y = 0, Z = 0, zurück kehrt!

Wenn ich diesen Avatar nun in VRChat hochlade und und die animation ausführe, dann spawnt der panzer, aber sie steckt und bleibt im panzer auf Bodenhöhe drin.

Anfang:

Dann wurde das Playmodel auf den Panzer verschoben:

Und nach einer weiteren interaktion in den "Animation Bereich ist wie bereits gesagt das Mädchen auf die standard postion zurück gekehrt. Ich habe auch versucht bei "Add properties" das transform für X Y Z hinzuzufügen was aber garnichts hilft und die werte nicht übernehmen will. auch nicht mit Enter:

Bild zum Beitrag
Computer, Unity 3D, Unity, Unity Engine, Unity 5, Spiele und Gaming, vrchat, VRChat Model, VRChat Avatar, VRChat Unity
Unity: Warnungen bei Skript?

Hi,

ich mache zurzeit ein Spiel mit Unity und stoße dabei vor ein Problem.

Ich habe nun ein Skript für meinen Spieler, der sich aber trotz allem nicht bewegen oder springen will. Nun habe ich alle Fehlermeldungen abgearbeitet und es klappt immer noch nicht.

Das einzige was bleibt, sind drei Warnungen:

Assets\Scripts\FirstPersonController.cs(7,36): warning CS0649: Field 'FirstPersonController.speed' is never assigned to, and will always have its default value 0
Assets\Scripts\FirstPersonController.cs(9,36): warning CS0649: Field 'FirstPersonController.JumpraycastDistance' is never assigned to, and will always have its default value 0
Assets\Scripts\FirstPersonController.cs(8,33): warning CS0649: Field 'FirstPersonController.jumpforce' is never assigned to, and will always have its default value 0

Ich habe leider absolut keine Ahnung, was das mir sagen soll. Ok, doch, habe ich, aber wie beseitige ich sie?

Programm:

public class FirstPersonController : MonoBehaviour
{
  [SerializeField]
  private float speed;

  [SerializeField]
  private float jumpforce;

  [SerializeField]
  private float JumpraycastDistance;

  private Rigidbody rb;

  private void Start()
  {
    rb = GetComponent<Rigidbody>();
  }

  private void update()
  {
    Jump();
  }

  private void Move()
  {
    float hAxis = Input.GetAxisRaw("Horizonta");
    float vAxis = Input.GetAxisRaw("Vertical");
    Vector3 movement = new Vector3(hAxis, 0, vAxis) * speed;
    Vector3 newPosition = rb.position + rb.transform.TransformDirection(movement);
    rb.MovePosition(newPosition);
  }

  private void Fixeduptade()
  {
    Move();
  }

  private void Jump()
  {
    if (Input.GetKeyDown(KeyCode.Space))
    {
      if (IsGrounded())
      {
        rb.AddForce(0, jumpforce, 0, ForceMode.Impulse);
      }
    }
  }

  private bool IsGrounded()
  {
    Debug.DrawRay(transform.position, Vector3.down * JumpraycastDistance, Color.blue);
    return (Physics.Raycast(transform.position, Vector3.down, JumpraycastDistance));
  }
}

Ich hoffe wirklich, mir kann jemand helfen!

Ein riesiger Dank geht an jeden, der zumindest darüber nachgedacht hat, mir zu helfen oder mir sogar vielleicht noch helfen kann!

programmieren, Script, Unity 3D, Fehlermeldung, Unity
Unity3D ArgumentException: The Object you want to instantiate is null?

Hallo liebe Programmierfreunde da draußen. :)

Ich arbeite gerade an einem Ich-bin-ein-Ball-und-sammle-kleine-Würfel-ein-Spiel, bin aber noch ziemlicher Anfänger. Vor allem was das Coden angeht.

Ich möchte gerne, dass beim Einsammeln der Würfel ein Licht, also ein neues GameObject entsteht. Dafür habe ich dieses Script geschrieben:

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

public class CreateObject : MonoBehaviour
{
  public Transform Spawnpoint;

  public GameObject Prefab;

  private void Start()
  {
  }

  void OnTriggerEnter()
  {
    Instantiate(Prefab, Spawnpoint.position, Spawnpoint.rotation);
  }
}

Natürlich habe ich mehrere aufsammelbare Würfel im Level. Jeder von ihnen hat dieses Script und jeweils ein eigenes EmptyGameObject als SpawnPoint. Das Licht ist ein Prefab und alle Würfel nutzen dieses eine.

Ich habe also einen Original-Würfel erstellt, den dann per Copy & Paste vervielfacht, alle in der Welt verteilt und jeder Kopie einen eigenen SpawnPoint für sein Licht gegeben.

So, wenn ich jetzt aber das Spiel starte, werden bei allen Würfeln, außer dem ersten Original-Würfel, unendlich Klone des Licht-Prefabs erstellt, ohne, dass ich irgendetwas mache. Dabei bekam ich diese Fehlermeldung:

UnassignedReferenceException: The variable Spawnpoint of CreateObject has not been assigned.

Nach ein bisschen Recherche habe ich diese Zeile in void start hinzugefügt:

Prefab = GameObject.FindGameObjectWithTag("SpawnLight");

So, jetzt war diese Fehlermeldung weg, aber leider auch meine Lichter. Wenn ich jetzt einen Würfel aufsammle, bleibt es dunkel. Dafür bekomme ich eine nette Fehlermeldung, welche mich wissen lässt:

ArgumentException: The Object you want to instantiate is null.

Ich habe leider keine Ahnung, was ich machen muss, um meine netten, kleinen Lichter zurückzubekommen... 😟

Ich freue mich über Hilfe jeglicher Form und bin mir sicher, dass es irgendwo da draußen jemanden gibt, der mir den Weg zum Licht zeigen und ebnen kann.

Vielen Dank schon einmal

KomischerLappen 😃

PC, Computer, programmieren, Error, Programmiersprache, Unity 3D, Unity, Spiele und Gaming

Meistgelesene Fragen zum Thema Unity 3D