• 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 GamesRUs · Jul 03, 2015 at 08:43 PM · physics

Attach a game object to the side of another?

I've searched and searched, but I can't find this particular situation addressed anywhere. I am trying to make a level design tool for a physics based game. The purpose of the tool is to form a platform, one section at a time. I'm using a simple cube with a scale of (1f, 0.25f, 1f), so essentially a rectangle. I want to be able to specify straight, 45 degrees or 90 degrees, along with left or right and up or down to tell the engine to place the next segment on the left or right of the current segment; going upward, downward or straight out. I want to get the sides to 'attach' by affixing the outer corners.

For example, if the current block is lying flat (no rotation) and the next block is to be placed on the right at 45 degrees down, the upper left corner of the new block should be at the same position as the upper right corner of the current block. Assuming the next block should again be laid flat, then the lower left corner of the new block should align with the lower right corner of the 45 degrees block (see the picture below). I'm SURE there is some cool function that will tell me where the corners are, even when rotated (the Mesh.vertices returns all of the points, but not rotated in world space), but I can't find it or an algorithm that will help.

A screen capture of what I am trying to accomplish is below. Can anyone provide some guidance or a better way to procedurally create platforms in a level? This is a physics game, not a platformer, just to reiterate.

Thanks in advance!

alt text

platform-sample.jpg (38.3 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 GamesRUs · Jul 04, 2015 at 03:20 PM

Alas, after all of that searching, I finally found the CORRECT terms to search for and the answer is Transform.TransformPoint. Along with identifying the corners of the GameObjects (parent and child) using Mesh.vertices and finally finding the front most corners to use as input into Transform.TransformPoint. The last piece of the puzzle was using simple vector math to adjust the location of each new piece. With all of that in place, the angle used is irrelevant and just knowing 'left/right' and 'up/down' tells the code which two corners to match up.

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.

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

21 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

Related Questions

2D 360 degress platformer example needed 0 Answers

Compound collider object behaving as a whole? 1 Answer

driving game power ups 1 Answer

how to capsule cast from within Entities.ForEach job? ECS 1 Answer

How would I cut geometry in real-time? 2 Answers


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