Is a Custom Editor the only way to create dialogue?

I Googled and found other options such as Ink plugin for Unity. Do I still need to go through the dialogue scripting format?

I’m not familiar with the Ink plugin (beyond the description on the Unity Asset Store page).

Our PlayerConversant won’t be set up to read Ink, and it doesnt’ look like Ink will support the dialogue triggers and Conditions we introduce later as well… I would say that to get the most out of this course, you’ll need to use the custom editor. A beautiful side effect of this is that you’ll be learning to use Editor scripting.

1 Like

I’m enjoying the course so far. It’s just that when I Google, each piece of information sends me down a rabbit hole, so I am asking here about key questions so I learn better.

What level will I be if I finish the RPG Bundle?

The more rabbit holes you explore, the more you will learn. :slight_smile:
I would say that at the end of these courses, you’ll be well into the upper intermediate stage, and if you put in the work and keep following the rabbit trails, you might find yourself in the advanced category…

1 Like

That alone was worth more the than entire cost of the RPG series for me, I can’t thank Sam enough for covering that part as well as he did, I was so stuck with that API until Sam came to the rescue.

1 Like

Yeah. I’ll be honest, my Editor Scripting Foo was sorely lacking before the Dialogues and Quests course. Now I write custom editors for just about everything.

What is the purpose of Custom Editors in general?

Basically, to make your work a lot easier, like the Ink plugin you mentioned, it uses custom editors, and it’s not just for super complex tools, you can do some quality of life improvements and options, for instance this little script that tells you which objects in the Assets folder have a missing script, it’s really handy because when that error shows up, it doesn’t says where the error comes from, it’s kinda annoying, but this little script fixes that.

Feel free to use it.

using UnityEngine;
using UnityEditor;
using System.Linq;

public class MissingScriptFinder : Editor
{
    [MenuItem("Component/Find Prefabs with missing Scripts")]
    public static void FindGameObjects()
    {
        string[] prefabPaths = AssetDatabase.GetAllAssetPaths().
            Where(path => path.EndsWith(".prefab", System.StringComparison.OrdinalIgnoreCase)).ToArray();

        int totalMissingScripts = 0;

        foreach (string path in prefabPaths)
        {
            GameObject prefab = AssetDatabase.LoadAssetAtPath<GameObject>(path);

            Component[] components = prefab.GetComponents<Component>();

            foreach (Component component in components)
            {
                if (component == null)
                {
                    Debug.LogError($"The prefab '{prefab.name}' in {path}; has a missing component");
                    totalMissingScripts++;
                    break;
                }
            }
        }

        string finalMessage = totalMissingScripts > 0 ?
            "Total missing scripts: " + totalMissingScripts :
            "No missing scripts found.";

        Debug.Log(finalMessage);
    }
}

You’ll hate the news that Unity is planning to replace the editor scripting. I think it’ll stay in use for ages, but it looks like they’re going to do it differently soon.

Take a look at their roadmap for 2023 for more deets.

Is it still worth doing that part of the course then? Or parts of the course in general?

I know things always change but I’d rather not learn obsolete material. :slight_smile:

It is definitely worth doing this part of the course, and furthering your study of Editor code in general. While Unity has plans to make changes in this area, you have to understand that Unity does not make these changes overnight… I’ll provide a few examples:

  • Navigation: In 2017, Unity started working on a beta version of the NavMesh system that would allow multiple navmeshes for different agent types. Only in version 2022.2 did they actually pull the navigation out of beta and make it the main navigation system.
  • UI Elements: In 2019, Unity began working on UIElements, at first for Editor GUI, later for in game UI. It is now a standard, but very optional feature.
  • Render Pipelines: In 2019, Unity started working on Scriptable Render Pipelines (URP/HDRP). While they are a core part of Unity now, the original Built-in Render pipeline is still working just fine.

This is just a fraction of the changes that have been introduced over the years, all now standard, but still optional (except for the NavMesh, if you use the NavMesh after Unity 2022.2, you must switch).

Editor Code the way we’re doing it now will be around for a long time, I suspect.

1 Like

So far you seem to know what you are talking about. Thanks. I have observed in my 40 years of existence that fundamentals do not change.

I’m more worried about Unity releasing stable versions of their tools than them making drastic changes, to be honest, and if it’s for the better, I don’t think I could even complain.

As @Brian_Trotter said, a lot of the tools take way too long to be truly implemented, just look at the 2D Tilemap or ECS and the DOTS systems, it’s been years and those features are still under unstable tools or something like that.

The icing on the cake, I very rarely use the new tools and features, like Cinemachine, half the time its overkill, and the other half is not truly what I need, I don’t consider using it in my projects, and that’s one of the biggest issues with the engine, don’t get me wrong, I love Unity, but they are trying to cover way too many things and a lot of the time the tools feel more oriented to animation or others things, and not to gaming. I once played an indie game called Hunter’s Legacy, that game clearly uses Cinemachine and it makes it unplayable, that tool is not really a game feature, it’s a cinematic feature, if they change it to make it a game tool, I’ll definitely start using it, but as it is right now, I rather code my own camera systems.

I didn’t mention those for just that reason, they’re not even close to a stable version of ECS, and once again, that’s been YEARS.

You might check out how Nathan uses it in the Third Person Course, and how Hugo uses it in the Turn based Strategy course. Cinemachine can be a great tool, but it’s easy to get away from you if the settings aren’t dialed in correctly.

I’ve seen a lot of people take advantage of Cinemachine, Sam and Rick used it pretty well too during the RPG series, but for some weird reason, when I use it for personal projects, it’s either overkill or not what I need, perhaps because the tool is more 3D oriented, and one way or another my games are more 2D like, even if they are 3D. Not even Rick could make Cinemachine work during the Tilevania project, he used it in pretty clever ways, but the camera eats half the screen so the player doesn’t know what’s ahead, that’s terrible for a platformer, and there’s no way to fix that without fixating the camera’s X Axis. Overkill.

I’ll check how Hugo uses it during the TBS course, but… I’m having such a hard time trying to enjoy that course, Hugo is kinda hard to follow, and I’ve taken many, many courses created by Dr. Penny de Byl, I have no issues following the chaos of that amazing woman, but for many reasons I can’t follow Hugo as smoothly as I follow other instructors.

I will agree, Cinemachine isn’t the best tool for 2D, outside of the Group Transposer module.

Privacy & Terms