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 DayyanSisson · Aug 14, 2011 at 07:36 PM · shootingturrettornado-twins

Turret Script Problem

I'm using my modified version of TornadoTwins turret script. The problem is, no matter which way the turret faces. It always shoots along the Z axis. So even when it's facing me, it shoots straight, not at me. Here's the turret script:

 var LookAtTarget : Transform;
 var damp : float = 6.0;
 var bulletPrefab : GameObject;
 var savedTime = 0;
 
 function Update ()
 {
      if(LookAtTarget)
      {
           var rotate = Quaternion.LookRotation(LookAtTarget.position - transform.position); 
           transform.rotation = Quaternion.Slerp(transform.rotation, rotate, Time.deltaTime * damp); 
           var seconds : int = Time.time;
           var oddeven = (seconds % 2);
           if(oddeven) 
               Shoot(seconds);
           transform.LookAt(LookAtTarget);
      }
 
 }
 
 function Shoot(seconds)
 {
      if(seconds!=savedTime)
      {
           var bullet = Instantiate(bulletPrefab,transform.Find("spawnPoint").transform.position , Quaternion.identity);
      }
 
 
      savedTime=seconds;
 
 }
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

2 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by roburky · Aug 14, 2011 at 08:07 PM

Your turret script creates bullets at the location of a child transform called "spawnPoint", but all bullets will be facing the same direction. There is also no code in there to make the bullets move.

I suspect your bullet script has the movement code, and will cause them to move forwards. In which case, you need to have the bullets oriented to face the correct direction when you instantiate them.

Try replacing the "Quaternion.identity" part of the Instantiate line in your Shoot function with "transform.rotation" to give the bullets you create the same rotation as your turret.

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 DayyanSisson · Aug 14, 2011 at 08:13 PM 0
Share

Thank you! You're correct, the bullet script has the movement code. thank you again. It works!

avatar image
0

Answer by Crowe T. Robot · Aug 14, 2011 at 07:43 PM

What I'm imagining happening is that after you instantiate your bullet prefab, you should rotate it so it's rotation matches that of the turret... then when you apply your movement code in your Bullet script, you would simply translate (or add force) in the local positive z axis (transform.forward).

Either that or you're applying your movement in world space, when you should be moving z forward in local space. Kind of hard to tell without the movement code for the bullet.

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 DayyanSisson · Aug 14, 2011 at 08:13 PM 0
Share

You're answer is correct too, but I read his first. But thank you anyway.

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

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Turret Range Script 2 Answers

Turret shooting at me 1 Answer

Turret Shooting 1 Answer

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

Unity3D Ai wont shoot 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