Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • 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 UserNobody · Nov 02, 2019 at 07:00 PM · vectormathfcalculationarc

Trouble calculating Arc offset position

Hello everybody :)
I am trying to create an angle arc, to help me visualize things better in the scene view. Unfortunately, I got myself stuck..

I use

Handles.DrawSolidArc(Vector3 center, Vector3 normal, Vector3 from, float angle, float radius);


to draw an arc using an angle I specify in the inspector.

Currently for from vector I use transform.forward, but it gives me this result:

alt text
How do I offset the vector to get this type of result instead?

alt text
In this example angle is 90 degrees, but I can specify a different angle from 0 to 180 degrees and I would like if this arc would offset to the center as this is kind of a field of view of the object.

I'm not the best when it comes to math, any help would be much appreciated! :)

 void OnSceneGUI()
 {
     var objTransform = _reference.objectReferenceValue as Transform;
  
     var center = new Vector3(objTransform.position.x, objTransform.position.y + 5, objTransform.position.z);
  
     Handles.color = new Color(.5f, .5f, .5f, .25f);
     Handles.DrawSolidDisc(center, Vector3.up, collider.radius);
  
     Handles.DrawSolidArc(center, Vector3.up, objTransform.forward, _angle.floatValue, collider.radius);
  
     Handles.color = Color.white;
 }

ex1.png (13.2 kB)
ex2.png (12.1 kB)
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
Best Answer

Answer by Bunny83 · Nov 03, 2019 at 01:00 AM

You just need to rotate your start vector counter-clockwise by half the angle of your arc.

Something like this:

 float angle = _angle.floatValue;
 Vector3 from = Quaternion.AngleAxis(angle * 0.5f, Vector3.up) * objTransform.forward;
 Handles.DrawSolidArc(center, Vector3.up, from, angle, collider.radius);

Currently I can't test this code. Maybe the angle need to be negative:

 Vector3 from = Quaternion.AngleAxis(-angle * 0.5f, Vector3.up) * objTransform.forward;
Comment
Add comment · 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

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.

Follow this Question

Answers Answers and Comments

117 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

Related Questions

Obtaining a perpendicular point? 1 Answer

Instantiate objects in an arc shape 1 Answer

Math help if possible, angle calculation 1 Answer

determine that the spinning motion is "CW" or "CCW" 0 Answers

Rigidbody physics - equalizing force 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