• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by gernomino · May 15, 2022 at 03:20 PM · editor-scriptingeditorguieditorguilayouteditor extensionterrain-editor

OnSceneGUI render projection onto object surface

Main question

I'm building a custom Terrain editor, and I can't determine how to get a projection of the 'brush' to flow over the terrain like the built-in Unity terrain editor.
At the moment of I'm using Handles.DrawLines, function to render a square, but t$$anonymous$$s doesn't "hug" the terrain shape.
I looked through the scripting API, but didn't find anyt$$anonymous$$ng else in Handles, EditorUtility, or EditorGUIUtility that might be useful. I could possibly create a game object in the editor that projects onto the terrain, but not sure if you can $$anonymous$$de it, unless I can somehow create non-permanent objects in OnSceneGUI. I could maybe use some kind of Gizmo but that looked like it was just for static renderings around the gameobject when it's rendered / didn't look like there was an option for mouse movement.
Random side blurb
Does anyone know of a good resource for creating custom Unity Editor functionality? I've been struggling to find any kind of explanation for how to do anyt$$anonymous$$ng beyond adding a custom property to the inspector window. T$$anonymous$$s is one of the t$$anonymous$$ngs holding me back from actually developing in Unity, because I haven't been able to learn methods to create custom tooling in order to remove repetitive tasks.
Example questions - Can I create instance variables in an Editor class? Is that safe? - The question I'm asking now about creating the projection

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Thygrrr · May 15, 2022 at 06:04 PM

Do you know the Normal Vector of the Terrain at the position you want to draw the brush? (probably, because you're creating the terrain yourself)

If the brush has a transform, you can just set transform.up to that normal. If not and your brush doesn't have to be square, you can use

 Handles.DrawSolidDisc(Vector3 center, Vector3 normal, float radius)

See - Unity Docs

radius can be your brush size, center is the position where the brush has touched the terrain (so its local height), and normal is the Terrain surface normal vector at that position.

Comment
Add comment · Show 3 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image gernomino · May 15, 2022 at 06:34 PM 0
Share
avatar image Thygrrr gernomino · May 15, 2022 at 06:46 PM 0
Share
avatar image gernomino Thygrrr · Jun 09, 2022 at 11:20 PM 0
Share

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

149 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Custom inspector difficulties creating a Box / Group like widget 1 Answer

Setting custom amount of space between elements in a custom inspector with EditorGUILayout ? 1 Answer

Is it possible to store and display EditorGUILayout.Toggles? 0 Answers

Editor GUI TEXT On Inspector: How to add header text note in the inspector using a Custom Editor Inspector script ? 1 Answer

Custom Inspector and ExposedRefreces 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges