- Home /
Easiest way to make a kind of "glowing indicator area"....
NOTE .. I stumbled on to a fantastic little package called "DYNAMIC CIRCLES" in the asset store which seems to exactly solve this problem. http://gameassets.net/demo/dynamiccircles.html
I had the ingenious idea of using the "search" feature in the asset store and typing the word "circles" :-)
Further update: if you need to make more complicated indicators like this, an incredible solution is to use the astounding SMOOTH MOVES (see asset store), which is in fact absolutely perfect for doing this sort of thing.
Smooth Moves let's you make boned mesh animations of 2D characters - it is incredible.
Normally you would use it for making people, panda bears, angry birds, etc, but it is also ABSOLUTELY PERFECT for making animated indicators, signs,moving arrows, directional indicators, gesture explanations and the like. Incredible product.
For the record Vectrosity has also come to the fore here. It does not do filled shapes but is a go-to solution for Vectors inside Unity. Thank you, Kleptomaniac !!!!!!! I had never heard of it before this.
I want to make an "indicator area," in fact simply circular, in a scene.
You can imagine the type of thing - you are not allowed to go here, you must land a bullet in this area - that type of indication.
Perhaps there is something in the asset store? I couldn't find anything. Any ideas? Cheers...
Vectrosity might be an option. It's not expensive, and pretty easy to learn... Useful in all kinds of situations, I$$anonymous$$O.
I use Vectrosity a lot. It's a library available directly on Eric5h5's site(http://starscenesoftware.com/vectrosity.html) or on the asset store. But taking a closer look at your needs, it seems like my advice is wrong here. Vectrosity is great for drawing lines and splines and points(2d and 3d), but not meant to fill the resulting shapes(if any) with color or texture... Sorry, my bad!
Answer by Fattie · Jun 23, 2012 at 09:35 PM
FTR ........ Kleptomaniac suggests Vectrosity
I stumbled on to a fantastic little package called "DYNAMIC CIRCLES" in the asset store which seems to exactly solve this problem. http://gameassets.net/demo/dynamiccircles.html
Also the always-astounding Smooth Moves can do this sort of thing very well.
Answer by CHPedersen · Apr 11, 2012 at 01:53 PM
I'm not clear in why you want this to exist in GUI layers? The image you've posted looks like the circle exists in 3D, like the indicator for an Area-Of-Effect spell.
I think putting a png on a plane and orienting the plane might suit your purpose, but that solution will break if the plane intersects with arbitrary terrain. The projector is by far the better solution, there. Can you elaborate on why a projector is not "really right"? Does it just look "not quite right", or do you worry about the computational complexity, or...?
The indicator only being visible from the camera's pov: does that mean the circle is always perpendicular to Camera.forward, i.e., it will always display as a perfect circle and never an ellipse? Does it change size, ever?
Perhaps you could model a circle using triangle strips in Blender (or define it procedurally), and then attach that mesh as a child to the camera? Then you can give it a transparent red shader, have it not react to lights, and change its position along camera.forward in order to change its size (or merely scale it)?
Why not use the Blob Shadow projector with a custom material?
@Fattie About the GUI, Christian (and I frankly) were wondering why you would be using the GUI for such a thing. From the picture provided, it seems as if you want to have something in 3D space which is rendered on to grounds, etc. as opposed to something rendered on to the GUI layer. It's impossible and unfeasible to render GUI elements on to a 3D surface like the effect made by the DrawSolidDisc routine shown in your image.
Also, regarding my previous comment, do you think that using a Blob Shadow projector with a custom material would be a viable solution?
Hey there, @Fattie ... you don't seem to understand what a GUI is? I'm sorry if I'm misinterpreting, but a GUI is something that is rendered in 2D screen space on the camera layer ... not in 3D space ... there is no such thing as a GUITexture or any other sort of GUI element being rendered on to, say, a mesh like is done with a projector. They are two completely different things ...
$$anonymous$$aybe Christian will have to come back and explain it better than me, because I'm crappy ...
EDIT
Unless, actually, having thought about your statement ("i tried just using a png of a circle and putting it in the gui; it is not a tidy way to proceed and it's a shame to have such a large texture just for a stupid indicator circle") a bit more ... are you saying you just chucked an actual circle texture on the GUI layer to give the "illusion" of being in 3D space? That's the only thing I could hope to decipher what your saying as.
Nevertheless in this case, I think either Vectrosity or taking the hacky way out with a blob shadow projector are the only two ways of going about this.
@Fattie: I'm happy you found something that suited your purpose. :) The asset store is quite helpful indeed. I think the reason the sentence "The indicator only being visible from the camera's pov" was confusing to me at least, is that the actual meaning of the sentence does not enclose the orientation of the disc. If you say "visible from camera's point of view", it only means the disc is in the camera's view frustum. A circular disc might be rotated such that it appears as an ellipse on the viewport after transformations, and still live up to the wording "visible from the camera's pov".
Notice from the description that the Dynamic Circles-package actually also generates meshes - its circles are 3D based, rather than pixel written to a Texture2D object. This means that to get a nice, smooth periphery, you can be sure its circles are also composed of quite a number of triangles. In fact, it's very likely that it simply creates a relatively high poly triangle fan in a circle, where all the triangles share the center vertex, like so:
http://www.codesampler.com/d3dbook/chapter_05/chapter_05_files/image008.jpg
It's possible (and not terribly difficult, thankfully) to describe such geometry mathematically and generate the corresponding mesh procedurally using the mesh class. You could've done it yourself, but it would've probably taken you longer time than 5 dollars is worth, so buying the solution is more cost effective, I suppose. :)
@Fattie $$anonymous$$ate, believe me, I know what the inspector is. Also, I know what both UnityGUI and the normal GUI system are. I have been using Unity for two years, and I have used UnityGUI extensively. I most definitely realise what a GUI is.
The fact that you used the example of Handles.DrawSolidDisc misled me. I assumed you would want what is described in the Script Ref for DrawSolidDisc as 'a solid flat disc in 3D space'.
However, your suggestion that you tried using the GUI to render a Texture2D on to the camera via the GUI Layer, which seemed a solution which did not fit your question at all (this was obviously reflected by Christian, who questioned "I'm not clear in why you want this to exist in GUI layers? The image you've posted looks like the circle exists in 3D, like the indicator for an Area-Of-Effect spell.").
Also, as Christian stated, the description for that package states that meshes are generated to form those circles and are not in fact Texture2D objects. They have nothing to with the GUILayer component attached to the main camera and are rendered in 3D space.
Secondarily, regarding your example of clocks and other things using 3D meshes, they still do not use the GUILayer and have nothing to do with the UnityGUI and normal GUI systems built-in to Unity. Although they are part of the GUI in the sense of the word, they have nothing to do with the inbuilt system.
Anyway, in answer to your question, yes, believe me, it all makes sense. :)
I'm glad you got your answer though ... looks like a pretty sick asset ... might look at it for future use. :P
Your answer
Follow this Question
Related Questions
Interface 3D 1 Answer
Creating a level editor, question about GUI/interface 1 Answer
Resolution & aspect ratio GUI 1 Answer
IGUI IOS error 1 Answer
GUI buttons look fine on full screen but distorted otherwise? 0 Answers