Unity3d Scriptübergreifende Liste?

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 komme gerade aber nicht weiter, da das Scriptübergreifende Arbeiten recht schwer für mich ist. Ich weiß, dass ich so:

 GameObject Gem;
 PlayText PlayTextGem;
 void start { Gem = GameObject.FindGameObjectWithTag("Gem");  PlayTextGem = Gem.GetComponent<PlayText>(); }


einerseits auf das GameObject mit dem Tag "Gem" und auf dessen Component, in diesem Fall ein Script, mit dem Namen "PlayText" zugreifen kann.

Jetzt habe ich aber mehrere "Gem" Objekte in meiner Szene und alles was ich jetzt mit dem oben genannten Code im "PlayText" Script ändere, passiert nur für einen einzigen "Gem".

Also dachte ich, mache ich aus dem GameObject "Gem" eine Liste, um meine Änderungen an allen "Gem" Objekten vorzunehmen. Dabei brauche ich aber Hilfe. So weit bin ich schon:

 GameObject[] Gem;
 PlayText PlayTextGem;
 void start {
 Gem = GameObject.FindGameObjectsWithTag("Gem");
 ???????
 }

Da wo die "???????" stehen weiß ich nicht mehr weiter, da VisualStudio mir da einen Fehler markiert, wenn ich nach einem "Coponent" suche.

Ich hoffe ihr könnt mir weiter helfen :)

Vielen Dank schonmal
KomischerLappen :)

PC, Computer, programmieren, Coding, Programmiersprache, programmiersprache C, Liste, Unity, unity3d, Spiele und Gaming
1 Antwort
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, Programmierung, Coding, Error, Programmiersprache, Unity, unity3d, Spiele und Gaming
2 Antworten
Unity3d C# Collider?

Hallo liebe Coding-Freunde!

Ich sitze gerade an einem kleinen Unity3d Game bei welchem man mit einer Kugel herum rollt und lustig rotierende Würfel aufsammeln muss (Hab nach einer Tutorialreihe gearbeitet https://www.youtube.com/watch?v=ubmVc6hZEVg&t=130s ).

Um die Berührung zwischen Spieler und Würfel zu erkennen, diese aufzusammeln, zu deaktivieren und meinem Score einen Punkt hinzuzufügen nutze ich unter anderem diese Zeilen:

void OnTriggerEnter(Collider collider) {
		if (collider.gameObject.CompareTag ("Gem")) {
			collider.gameObject.SetActive (false);
			count++;
			UpdateScoreText (); 
        }

Das funktioniert auch genau so wie es sollte.

Jetzt möchte ich noch Objekte hinzufügen, welche bei Berührung 10 Punkte von einer 100 Punkte großen HP Leiste abziehen. Dafür habe ich unter anderem diesen Code verwendet:

void OnTriggerEnter(Collider enemyHit) {
		if (enemyHit.gameObject.CompareTag ("Enemy")) {
			hp = hp - 10;
			UpdateHPText ();
		}

Jedoch sieht das Unitys Console gar nicht gerne und bestraft mich mit dieser Fehlermeldung:

error CS0111: A member `PlayerController_New.OnTriggerEnter(UnityEngine.Collider)' is already defined. Rename this member or use different parameter types

Leider kenne ich mich mit Coding genauso gut aus wie mit Chinesisch. Bei "ni hao" fängt es nicht nur an, da hört es auch schon wieder auf. Ich dachte, dass "Collider" ein normaler Befehl bzw. eine Definition sei, aber irgendwie stimmt das wohl nicht so ganz...Außerdem verstehe ich nicht ganz, was ich hinter den Collider in die Klammern schreiben muss (Collider collider). Ist das zweite, kleingeschriebene "collider" der Name dieser Kollision oder was? Ist mein (Collider enemyHit) sowieso falsch, weil es "enemyHit" einfach nicht gibt? Und was muss ich ändern, wo ich doch genau den selben Ablauf wie beim Würfel aufsammeln haben will, mit dem einzigen unterschied, dass das Objekt NICHT deaktiviert wird und Punkte abgezogen, statt dazugezählt werden.

Ich bin verwirrt, hoffe aber, dass es ein paar clevere Leute gibt die gerade überlegen lächelnd leicht ihren Kopf schütteln und sich meiner erbarmen, mich bei der Hand nehmen und mir die Welt erklären.

Vielen Dank schon mal

KomischerLappen :)


Computer, Games, programmieren, Coding, Programmiersprache, programmiersprache C, unity3d, Spiele und Gaming
1 Antwort
WP Theme Affiliseo - Vorschaubilder Größe Blogbeiträge?

Hallo,

ich nutze für meine Affiliateseite das Theme Affiliseo und bin auch ziemlich zufrieden damit. Problem nur: Die Größe der Vorschaubilder meiner Blogbeiträge.

Diese sind automatisch 300x300 Pixel groß, was deutlich zu groß ist. Ich möchte das gerne auf 200x200 Pixel setzen. Auch wenn ich die Beitragsbilder in 200x200 Pixel hochlade, skalliert das Theme diese automatisch hoch.

Leider reichen meine Programmierkenntnisse nicht aus um das zu fixen und der Support antwort seit 2 Wochen nicht. -.-

Vielleicht könnte mir dabei ja jemand irgendwie helfen.

Wenn man auf das Bild klickt und "Element untersuchen" sieht man folgenden Code:

<div class="blog-preview-inner-box" style=" height:-40px; overflow: hidden; text-overflow:ellipsis;"><a href="http://www.meinmusikland.de/rocktile-pro-bb104-b-battlebone/"><img style="float:left; margin: 4px 10px 12px 4px;" src="http://www.meinmusikland.de/wp-content/uploads/2018/09/rocktile-pro-battlebone-vorschau-150x150.jpg" width="300"></a><h3 style=""><a href="http://www.meinmusikland.de/rocktile-pro-bb104-b-battlebone/">E-Bass Rocktile Pro BB104-B Battlebone</a></h3>Der Rocktile Pro BB104-B…</div>

Ich habe keine Ahnung wo das Theme die "width="300" hernimmt... Wenn ich das in der Untersuchungsbox auf 200 setze, passt's. Aber wie gesagt keine Ahnung wo ich es im Theme selber ändere, sodass es tatsächlich so ausgegeben wird.

Computer, Technik, HTML, programmieren, CSS, Programmierung, Coding, development, Entwicklung, Technologie, Developing
1 Antwort
Wie kann ich eine Protobuf Parser Programmieren,Habe bereits etwas, einen Code der mir meinen Excel File ladet und in einem DatagridView, und ein externes prog?
using Excel;



namespace ProtoBuf_Parser_
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        DataSet result;
        private void button1_Click(object sender, EventArgs e)
        {
            using(OpenFileDialog opfd = new OpenFileDialog() { Filter = "Excel 2016|*.xlsx|Excel Workbook 97-2016|*.xls", ValidateNames = true }){

                if (opfd.ShowDialog() == DialogResult.OK)
                {

                    FileStream fs = File.Open(opfd.FileName, FileMode.Open, FileAccess.Read);
                    IExcelDataReader reader = ExcelReaderFactory.CreateBinaryReader(fs);
                    reader.IsFirstRowAsColumnNames = true;
                    result = reader.AsDataSet();
                    comboBox1.Items.Clear();

                    if (result.Tables != null)
                    {
                        foreach (DataTable dt in result.Tables)
                                    {
                                        comboBox1.Items.Add(dt.TableName);
                            reader.Close();
                                }
                            }
            
                }
                }
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            dataGridView.DataSource = result.Tables[comboBox1.SelectedIndex];
        }
    }
}

namespace Protobuf_Parser
{
    class Program
    {
        public static DataTable ImportSheet(string fileName)
        {
            var datatable = new DataTable();
            var workbook = new XLWorkbook(fileName);
            var xlWorksheet = workbook.Worksheet(1);
            var range = xlWorksheet.Range(xlWorksheet.FirstCellUsed(), xlWorksheet.LastCellUsed());

            var col = range.ColumnCount();
            var row = range.RowCount();

            //if a datatable already exists, clear the existing table
            datatable.Clear();
            for (var i = 1; i <= col; i++)
            {
                var column = xlWorksheet.Cell(1, i);
                datatable.Columns.Add(column.Value.ToString());
            }

            var firstHeadRow = 0;
            foreach (var item in range.Rows())
            {
                if (firstHeadRow != 0)
                {
                    var array = new object[col];
                    for (var y = 1; y <= col; y++)
                    {
                        array[y - 1] = item.Cell(y).Value;
                    }

                    datatable.Rows.Add(array);
                }
                firstHeadRow++;
            }
            return datatable;

        
            
        }
        static void Main(string[] args)
        {
                DataTable _dt = new DataTable();
            _dt = ImportSheet("Test.xlsx");
        
        }

        
    }
}


Excel, programmieren, Code, Coding, CSharp, dataGridview, CSharp Programmierung
1 Antwort
Ab wann ist ein Menschenleben lebenswert? Abtreibung, Sterbehilfe und EG Coding legalisieren? Dürfen wir Gott spielen?

Ich versuche die Frage mal so gut zu beschreiben.

Also es geht darum, wann ein Mensch wert ist, Leben zu dürfen. Jetzt würde man auf Anhieb sagen immer! Aber, was ist, wenn der Mensch eine Behinderung hat, eine unheilbare Krankheit und sein Leben lang leidet, ist das Leben dann lebenswert?

Ich weiß, dass wir Menschen immer nach einem Fortschritt streben, wir wollen z.B länger leben und nicht krank werden bzw gesund bleiben. Wir wollen alles besitzen und die Herrscher sein.

Seit der fortschrittlichen Biotechnologie ist es möglich, Abtreibungen vorzunehmen, Menschen die jeden Tag im Sterbebett leiden mit einer Art Giftspritze den Tod zu bringen und in der Entwicklungsphase durch EG Coding, den Computer mitentscheiden lassen, ob der Zellhaufen lebenswert ist oder nicht. ( in China in Entwicklung, in der EU strengstens verboten).

Diese Technologien lassen sich nicht mehr aufhalten und es werden immer neue dazu kommen.

Ein Nachteil wäre natürlich, dass designerkinder gegenüber anderen "natürlichen Produkten" eine höhere Lebenserwartung und Intelligenzquotienten haben. Vielleicht geht auch der sexualtrieb der Menschen verloren, der natürlich vorgesehen ist. In künstlichen Gebärstationen versucht man Embryonen wachsen zu lassen. Wobei hier auch Moral und Ethik eine große Rolle spielen (werden).

Jetzt die Frage, wie weit darf man gehen? Die Vorteile durch diese Technologie sind regellos Groß, keine Frage. Nur was ist mit der Individualität eines Induvidiums, ich meine, keiner hat mehr seine Mutter, sondern wächst in einer monotonen künstlichen Gebärmaschine auf und wird dort direkt behandelt und auf Krankheiten untersucht, möglicherweise sogar entsorgt solange der PC keine Lösungen dazu hat.

Wie können wir überhaupt definieren wann ein Mensch ein Mensch ist?

Diese Szenarien  klingen zuerst wie Zukunftsmusik, doch in Wirklichkeit sind sie nurnoch einen Katzensprung weit entfernt und unaufholbar.

Jetzt seid ihr gefragt, möchtet ihr lieber natürliche Kinder, mit dem Risiko, dass diese behindert werden könnten, oder euch absichern und eure Kinder in einer Gebärmaschine Großwerden lassen, die der PC durch logische Algorithmen steuert. Entscheidet selbst, ich bin für letzteres, nur meine Meinung.

PS: ich möchte hier nicht als unmoralischer Mensch  abgestempelt werden, nur weil ich diese Dinge Befürworte, gar beschleunigt haben will.

Die Zeit ist reif für eine Veränderung, nur so können wir Behinderungen und Krankheiten VON ANFANG AN beseitigen und ausmerzen.

Ja anfangs könnten Fehler unterlaufen und Menschen werden auch sehr wahrscheinlich dabei sterben, aber wir brauchen mal Versuchsembryone um dies zu testen. In China geht das, warum hier nicht?

Leben, Medizin, Natur, Religion, Menschen, Abtreibung, Baby, Krankheit, Gesetz, Wissenschaft, Biologie, Psychologie, kuenstlich, Intelligenz, Welt, Behinderung, Bioinformatik, Biotechnologie, Coding, Entwicklung, Ethik, Fairness, Forschung, fortschritt, Gesellschaft, Gewissen, Gleichberechtigung, Gott, Identität, Individualität, legalisierung, Leid, macht, Menschenrechte, Moral, Philosophie, Schöpfung, schwanger, Science Fiction, Sterbehilfe, Algorithmus, Biogenese, Embryo, Philosophie und Gesellschaft
22 Antworten

Meistgelesene Fragen zum Thema Coding

IPv6 zu IPv4 ändern?

2 Antworten

Notepad++ Farben beim Code einstellen

1 Antwort

Was bedeutet int i doppelpunkt in java?

5 Antworten

Commands für fake/Troll virud?

2 Antworten

Source Code aus Spielen ansehen

4 Antworten

Wie Batch datei ausführen ohne bestätigung (for /l command)?

3 Antworten

Gesichtserkennung programmieren?

2 Antworten

Woher bekomme ich kostenlose Minecraft Alts?

3 Antworten

Mcp decompile Error (1.8.8)?

1 Antwort

Coding - Neue und gute Antworten