Wie fixe ich das Problem bei meinem Spiel in Unity?
Guten Tag,
ich habe aktuell in meinem Spiel ein Skript erstellt, was ein InteractableObject-Skript ist und ich habe Code geschrieben, dass ich auf weiter Entfernung die Schrift nicht sehe, was das für ein/e Item/Ressource unter dem Fadenkreuz ist. Also zum Beispiel steht unter dem Fadenkreuz "Stein" da, wenn ich mit dem Fadenkreuz drauf bin, aber ich möchte nicht, dass es auf weiter Entfernung zu sehen ist und habe dazu Code geschrieben. Aber trotzdem sehe ich das auf weiter Entfernung.
Hier der Code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InteractableObject : MonoBehaviour
{
public bool playerInRange;
public string ItemName;
public string GetItemName()
{
return ItemName;
}
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
playerInRange = true;
}
}
private void OnTriggerExit(Collider other)
{
if (other.CompareTag("Player"))
{
playerInRange = false;
}
}
}
Danke im Voraus!
2 Antworten
Dein Skript setzt aktuell nur den Zustand einer boolschen Variable, wenn ein Objekt mit entsprechendem Tag in oder aus einen Bereich tritt. Das müsstest du nun noch mit der Textanzeige koppeln.
Du könntest komplett auf die boolsche Variable verzichten und an deren Stelle einfach direkt den Status des Textobjekts (Renderer.enabled) setzen.
Es macht keinen Sinn mit Unity anzufangen, wenn selbst die absoluten Basics fehlen. Du weißt ja anscheinend nicht mal was eine Property ist. Fang doch lieber erstmal damit an, C# zu lernen bevor du dich ohne alles in so ein Framework rein stürzt... Bringt ja jetzt auch nichts einfach Code zu kopieren den du nicht verstehst
Ich habe dir bereits einen klaren Lösungsweg gegeben.
(...) ich habe kein plan wie man programmiert (...)
Grundlagenkenntnisse in der Programmierung mit C# sind Startvoraussetzungen, um mit Unity Spiele entwickeln zu können. Es verhält sich so, wie mit dem Lernen deutscher Grammatik und dem Schreiben eines Buchs.
Geh also einen Schritt zurück und fange erst einmal damit an, Programmierung mit C# zu lernen. Ein paar hilfreiche Lernquellen und -tipps habe ich in diesem Beitrag schon einmal aufgeführt.
Hinsichtlich Tutorials würde ich empfehlen, weniger auf blindes Abtippen zu setzen. Vor allem wenn es darum geht, etwas zu programmieren, lernst du auf diese Weise nicht wirklich etwas und sitzt zu schnell auf dem Trockenen, falls etwas nicht funktioniert/fehlt.
Es geht ja darum das ich es nur in der Bestimmten Ränge dort aufsammeln kann und das der Text von weitem nicht zu sehen ist...
Okay der Player geht in den Trigger, wenn du einen platziert hast. Dann setzt du die Variable und dann geht der Spieler raus und setzt die Variable auf false. Wie soll dann irgendwas passieren?
Aber bei dem Tutorial Typen hat es doch auch damit geklappt? Bin neu in Unity/Programmieren
Ehm ich sehe das du neu bist. Vielleicht lernst du erstmal normales Programmieren bevor du dich an ein 3D Spiel wagst. Gute 3D Spiele bestehen aus mehreren Entwicklern und kein allein Gang. Denk dran, du musst Modellieren können, Animieren können, Texturieren können, Programmieren können, Gute Spiele Idee haben etc.
Der Text ist ein GameObject namens interaction_Info_UI was ich für den SelectionManager brauche und das InteractableObject Script brauche ich für die beiden Dinge also keine Ahnung... Vielleicht weißt du dort mehr als ich..