• 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 GameCherry · Feb 27, 2011 at 09:11 PM · javascriptpositionprojectilefire

Projectile Firing From Floor, I Need Some Help

I'm applying the lessons from the FPS tutorial to a 3rd person shooter/brawler and have run into another snag. In my game, the player has freedom of motion via the WASD keys with the mouse controlling only the camera and only on the left/right axis. The code in the FPS tutorial had the projectile originate from the RocketLauncher and shoot forward - but forward was where ever the camera was pointing forward. I fixed that by having the projectile originate from the player position instead and this works great - except, the projectile is "stuck" to the floor. I'm assuming this is because that is where the player is originating from. My code looks like this:

var projectile : Rigidbody;

var initialSpeed = 20.0;

var reloadTime = 0.5;

var ammoCount = 20;

private var lastShot = -10.0;

var target : GameObject;

var slice = 0;

var loft = 0;

function Fire ()

{

target = GameObject.Find("player01");

target.animation.CrossFade("draw_rifle");

target.animation.CrossFade("aim_rifle");

// Did the time exceed the reload time? if (Time.time > reloadTime + lastShot && ammoCount > 0) { // create a new projectile, use the same position as player01 but the same rotation as the Launcher. var instantiatedProjectile : Rigidbody = Instantiate (projectile, target.transform.position, transform.rotation);

 // Give it an initial forward velocity. The direction is along the z-axis of the missile launcher's transform.
 instantiatedProjectile.velocity = target.transform.TransformDirection(Vector3 (slice, loft, initialSpeed));

 // Ignore collisions between the missile and the character controller
 Physics.IgnoreCollision(instantiatedProjectile.collider, transform.root.collider);

 lastShot = Time.time;
 ammoCount--;

}

}

How can I fix this so that the projectile is still coming form player01 position but elevated off the floor? Thank you for your time.

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
2
Best Answer

Answer by Will 7 · Feb 27, 2011 at 09:52 PM

Try this....

// create a new projectile, use the same position as player01 but the same rotation as the Launcher.
var instantiatedProjectile : Rigidbody = Instantiate (projectile, Vector3(target.transform.position.x, target.transform.position.y + 2, target.transform.position.z), transform.rotation);

Probably wont work but it might :)

Comment
Add comment · Show 1 · 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 GameCherry · Feb 27, 2011 at 10:06 PM 0
Share

this is exactly what I was looking for. 2 was too large a number so, I turned into a var and set it's value at 0.6 and it works beautifully. This little piece of js is going to help me in some other areas as well, thanks Will.

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

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

No one has followed this question yet.

Related Questions

Can someone help me fix my Javascript for Flickering Light? 6 Answers

Setting Scroll View Width GUILayout 1 Answer

The name 'Joystick' does not denote a valid type ('not found') 2 Answers

How to tell if two objects are right next to each other in a 2d game? 2 Answers

How to tell if an object is right next to another? 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