Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

21

16.05.2016, 21:26

Nur ein Zwischenstand, die Achsenorientierung habe ich über Blender gelöst. Nun fehlt nur noch das Editor-Skript :search:

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

22

17.05.2016, 21:18

Ich habe jetzt in Unity einen Ordner "Editor" genannt und habe nun 2 Skripte. Das 1. Skript liefert die Methode, wie der Baum ausgerichtet werden muss. Das 2. Skript soll einen Button im Inspektor erstellen, womit ich beim Klick dann den Baum passend ausrichte.

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using UnityEngine;
using System.Collections;

public class BaumplatzierungSkript : MonoBehaviour {

    public float planetRadius = 0.5f;
    public Transform worldTransform;
    public Transform treeTransform;

    public void PlatziereBaum ()
    {
        Vector3 direction = (treeTransform.position - worldTransform.position).normalized;
        treeTransform.position = direction * planetRadius;
    }
}


C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using UnityEngine;
using System.Collections;
using UnityEditor;

[CustomEditor(typeof(BaumplatzierungEditor))]
public class BaumplatzierungEditor : Editor
{
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        BaumplatzierungSkript script = (BaumplatzierungSkript)target;

        if (GUILayout.Button("Baum ausrichten"))
        {
            script.PlatziereBaum();
        }
    }

}


Weiß jemand was noch fehlt, damit der Button im Inspector auftaucht?

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

23

17.05.2016, 23:52

der BaumplatzierungEditor ist kein Editor für BaumplatzierungEditor, sondern für BaumplatzierungSkript (Wenn das das Script ist, für welches der Inspector angepasst werden soll). Entsprechend muss die Zeile bspw. [CustomEditor(typeof(BaumplatzierungSkript))] heißen.

Allerdings scheint die Rotation noch nicht angepasst zu werden. Da du wahrscheinlich an mehreren Stellen (und somit mit unterschiedlichen Ausrichtungen) Bäume platzieren willst, solltest du das wohl auch noch über dieses Script lösen.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Werbeanzeige