PlayCanvas Editor Feedback


Tiling is not taken into account when displaying the contours of a material


Thanks for reporting, @redka. I’ve created a bug report about the selection outline of tiled textures with alpha test. I believe we’ve fixed the Launch button in our codebase and will deploy it soon.


Not a major issue but is it possible to save this settings? I have to remember to switch off Auto-run every time I load the project and uploading non-POT textures.

Most of the times I forget and the texture are resized automatically.



Could save it in localStorage, so it would persist between sessions. But that applies to all assets, models including.


Yes, that will do if you find it appropriate, thanks @max.


When adding an HTML asset, and clicking on the asset to see it’s ID number, would it be sensible to allow clicking on that ID number at the top right and copy this value to the clipboard? At the moment text selection is disabled on that item so have to alt/tab to copy it into code.


Yeah, that text should probably be selectable. But do try to avoid inserting IDs into your scripts. When you fork projects, asset IDs change and your project will no longer work. Instead, you should really use script attributes (of type ‘asset’) to wrangle assets.


Excellent, thanks Will.
Just to confirm, the best approach is doing something like this?

   var asset ="mycssfile.css", "css");

    // create element
    var style = pc.createStyle(asset.resource || '');

    // when asset resource loads/changes,
    // update html of element
    asset.on('load', function() {
        style.innerHTML = asset.resource;

    // make sure assets loads;    

These doc pages seem to show the old way of doing it so might be worth updating to the non-ID approach?


You can also use an asset reference attribute in the script:


So in your case, to add script attributes for HTML and CSS assets, you’d do:

MyScript.attributes.add('html', { type: 'asset', assetType: 'html', array: false });
MyScript.attributes.add('css', { type: 'asset', assetType: 'css', array: false });


I’m on chrome.

I thought I used to be able to select the id number of an asset to copy it but I no longer can. I would like to be able to. Specifically this is a texture.


Yeah, @rakberdin, this did use to work but we changed the Editor so you can’t select arbitrary HTML elements in the interface (which can be annoying when click-dragging beyond the boundary of the 3D view). We were probably a bit overzealous in disabling any selection (except edit box contents). @max can probably relax this when he gets a moment.


Can confirm the regression of ID selection, we will fix that.


make it so people can add scripts to the store


I started learning PlayCanvas about a week ago, and the editor is great. It’s the API thats putting me off. Everything is so deeply nested that it’s very difficult to figure out where anything is. Overuse of this makes everything even more ambiguous (as ever), and the docs don’t really help; they’re disjointed and difficult to follow (when you can find docs for the correct API version). I don’t normally struggle to learn APIs like I have with this one.

The User Manual starts with a short first page that links to the second. There is no third page. You’re just left to wonder around from there, and figure it out for yourself. There are plenty of docs, but it’s all just scattered information.

The code editor is also kind of clunky. For example, if you select any text, it highlights all matching text, which is fine, but it does it by adding a 1px border, so the text jumps around in the editor, which is disorientating. It also warns against using ES6 features that are standard in modern browsers, and doesn’t let you omit redundant, ugly semi-colons i.e function square(x) { return x * x } is a syntax error. There are no options to change any of this. I can’t even select a font size.

I didn’t mean to be totally critical. I like the scene editor a lot. It’s just the whole scripting experience was unusually horrible.


There is some relationship between things, but in terms of inheritance it is very flat though.

Indeed. As it is very individual to each of user. Some of users prefer “Getting Started” manual, which goes one page after the other. But the nature of gamedev is non-linear and each user very likely have different story, so need to get different pieces of information.

Looking for info - is essential skill for a developers every days life.

That’s easy to fix.

Modern, yes, but not all browsers that are WebGL friendly. Which means that if developer uses ES6 features, it means his WebGL app wont work on all WebGL capable platforms, which are still there. So that is why we do not encourage anyone to use it.

JSLint/Hint, is there for a reason.

Feedback is always useful. It is important we extract useful information from it.
If anyone is asked to use a tool, there is always “getting used to” stage, which takes some time. Some people are a bit more relaxed about it, some less.

Thank you for a feedback! :slight_smile:


My earlier feedback was overly negative. I’m sorry for that. I was frustrated, and nothing seemed to be working properly. That said, dismissing everything I wrote seems a bit unfair.

The condescension at the end there was slightly annoying, but I was a bit harsh to begin with, so fair play mate.

Game engines are just software. You can write linear guides that explain how they work. People write books on game development.

The docs do not introduce new users enough. I didn’t expect the full O’Reilly, but felt the docs could be improved by at least letting people know where to start. I don’t think it is “very individual to each of user”. There are certain things that everyone needs to know, that are not even mentioned.

How is a new user supposed to know that pc even exists for example? Why would they search for that, when they don’t know it exists. It’s not mentioned in the Manuals menus at all. There are lots of examples like that. The API is not even introduced.


My personal view is that we can definitely improve the API docs especially for new users. We have no intention making things unclear for developers! But it’s not an easy job to completely rewrite everything given that we have to juggle a lot of balls at the same time.

That said we are looking for ways to improve our learning resources - we recently overhauled our tutorials section. And we are always here to help so don’t hesitate to ask if you face any difficulties.


Good point.

It is very easy to forget after long time using a thing, of how to look with “naked eyes” on things. So things experienced users get for granted, is so commonly learned, that they forget that initially it wasn’t obvious. And new users feedback as you’ve provided is a good reminder about that.

User Manual went through a lot of edits and additions in last years, and since then hasn’t been re-structured, to ensure that information is presented in very smooth way. So indeed, there could be done big re-structure there, but it is loads and loads of work. Not mentioning that it has to be translated to Chinese, Japanese and Russian.

But, docs are actually open-source :slight_smile:
So PR’s of specific features and pages are always welcome.


The editor does not say don’t use ES6. It says to use the string ‘esversion: 6’, but it doesn’t work. Besides, what if a user doesn’t want to support those browsers?

I don’t understand. I want to write this:

square(x) { return x * x }

And not this:

square(x) { return x * x; }

It doesn’t let me. There are literally no editor options at all.

I know some frameworks are quite opinionated, but dictating what browsers users have to support, and making everyone use the same editor config??

You said the bug in the editor was easy to fix. Are you implying that I should fix it, or that it’ll be done soon? I honestly didn’t understand. I’m happy to fix it, but it is a 5 second job for anyone who works on the code. If I stick with PlayCanvas (which I hope to, as I really like the scene editor), I’m going to use TamperMonkey to overhaul my version of the editor anyway.

C’mon dude, Nothing I said was personal. That’s twice you’ve put me down now.

I was struggling to figure out the API, the editor was throwing up a thousand messages that didn’t help, and the text was jumping all over the place (I have an array of arrays, each full of the same few names, like [foo, foo, bar, foo, spam, foo…], and it jumps a whole character sometimes). Your response was dismissive, and ignores genuine issues that make PlayCanvas less nice to use. It’s not all to do with “getting started” either. I will always want the editor to work correctly and support standard options.

Anyway, no hard feelings mate. I’m sure we just got off on the wrong foot.