• 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
Question by iaind78 · Dec 19, 2011 at 06:39 PM · rotationinstantiateprojectileplane2.5d

Rotation troubles

Hello there.

I'm trying to create a 2.5d game

The player can throw strawberries from a game object, x = right, y = up, z=away.

I've created a plane prefab which is textured with the strawberry image. The plane has been rotated so that it faces the player, standing up, rather flat. x = right, y = up, z=away

This is all fine and when the prefab is in the scene it is displayed as I would like it.

I've written a script that will fire the plane prefab from the player game object, which works but, the plane is projected flat.

So I'm having difficulty getting the plane to face the player when fired.

It seems to me that this might be a problem or my understanding of how to instantiate the prefab, in that I'm not able to control the rotation.

Can anybody point me in the right direction on where the problem is coming from and how I might solve this.

Here is the code used on the player game object to project the prefab.

 var speed = 3.0;
 var PreFab:Transform;
 
 
 function Update () 
 {
     //find out if a button is pressed
     if(Input.GetButtonDown("Fire1"))
     {    
             //create the prefab
             var strawberry = Instantiate(PreFab, transform.position, transform.rotation);
                                   
             //add force to the prefab
             strawberry.rigidbody.AddForce(transform.forward * 1000);                
     }
 }

Kind Regards

Iain

Comment

People who like this

0 Show 0
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

2 Replies

  • Sort: 
avatar image
Best Answer

Answer by aldonaletto · Dec 19, 2011 at 07:24 PM

You must rotate the front direction of the plane to the player direction. If you created the plane in Unity, it probably is "looking" to the up direction. To create a suitable rotation, you should do something like this:

    ...
    if(Input.GetButtonDown("Fire1"))
    {  
         // this rotation will rotate a plane that "looks" to the up direction
         // to be facing the player
         var rot = Quaternion.FromToRotation(Vector3.up, -transform.forward);
         //create the prefab
         var strawberry = Instantiate(PreFab, transform.position, rot);
         //add force to the prefab
         strawberry.rigidbody.AddForce(transform.forward * 1000);          
    }
    ...
If the plane with zero rotation is "looking" to any other direction, replace Vector3.up with the correct reference direction.

Comment
ROOKIE

People who like this

1 Show 0 · 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

Answer by iaind78 · Dec 19, 2011 at 10:53 PM

Cheers Aldo, that's worked beautifully.

I'm not quite sure I understand everything that's happening, but I always find it easier to work something out when there's a solution. Off to the reference manual I go, then some tinkering with your code.

Thanks for taking the time to help me join the dots.

Kind Regards

Iain

Comment

People who like this

0 Show 0 · 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

Unity Answers is in Read-Only mode

Unity Answers content will be migrated to a new Community platform and we are aiming to launch a public beta by June 9. Please note, Unity Answers is now in read-only so we can prepare for the final data migration.

For more information and updates, please read our full announcement thread in the Unity Forum.

Follow this Question

Answers Answers and Comments

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Instantiated object using parent's transform as world axes 1 Answer

Instantiate projectile rotation 2 Answers

Gun Projectile Shooting In Wrong Direction (Javascript) 1 Answer

Fire Projectile based on Model rotation 1 Answer

Create plane from 2 Vectors of a symmetry line segment 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