Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 RaulG · Jan 16, 2015 at 05:41 PM · movementgameobjectbullet

Object moves to 0,0,0? (Just want to know why it works)

 pPos = GameObject.FindGameObjectWithTag ("Player").transform.position;
 
 
         foreach (GameObject s in eSpawn.eSnake) 
         {
             if (bFireRate >= 0.75f)
             {
                 Rigidbody bullet = Instantiate(eAi.Bullet, s.transform.position,
                                                Quaternion.LookRotation((pPos - s.transform.position))) as Rigidbody;
                 bFireRate = 0.0f;
             }
         }
     }


So the above script works.

Whats odd is that the below script doesn't:

 pPos = eAi.Player.transform.position;
 
 
         foreach (GameObject s in eSpawn.eSnake) 
         {
             if (bFireRate >= 0.75f)
             {
                 Rigidbody bullet = Instantiate(eAi.Bullet, s.transform.position,
                                                Quaternion.LookRotation((pPos - s.transform.position))) as Rigidbody;
                 bFireRate = 0.0f;
             }
         }
     }


Isn't it the same thing?

The eAi script is attached to a Main empty object in the world, which is then attached to a Empty object that is the child of the object that fires the bullet.

I use the child Empty object as a Sphere collier. Which contains the script that fires the bullet.

Comment
Add comment · Show 3
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 tanoshimi · Jan 16, 2015 at 05:53 PM 0
Share

What does "doesn't work" mean? What behaviour were you expecting? What did you get? Where do you define "Player" in the eAi class?

avatar image RaulG · Jan 16, 2015 at 06:01 PM 0
Share

Oh should have been a lot more specific.

Player is just a public Gameobject. Throughout the script I do call for the current position of the player, but I don't change it.

The above script sends the bullet object from the shooter to the player.

The below script sends the bullet from the shooter to the 0,0,0 of the world.

avatar image richyrich · Jan 18, 2015 at 03:22 AM 0
Share

$$anonymous$$gestion to improve the code:

 if (bFireRate >= 0.75f)
 {
     foreach (GameObject s in eSpawn.eSnake) 
     {
         Rigidbody bullet = Instantiate(eAi.Bullet, s.transform.position,
                                                 Quaternion.LookRotation((pPos - s.transform.position))) as Rigidbody;
         bFireRate = 0.0f;
         break;
     }
 }

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by richyrich · Jan 18, 2015 at 03:20 AM

As far as I can tell, in the first script, you obtain pPos as world coordinates. In the script below, pPos is obtained from a child object where the location is 0,0,0 (i.e. zero offset to the parent's world coordinates). However, you are using the local offset as world coordinates, hence the position at 0,0,0.

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

26 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

Related Questions

Why are these object passing through each other? 1 Answer

Moving GameObjects with mouse and check contains 0 Answers

using Contains(gameObject) to find and destroy a gameObject from a list 2 Answers

Move object, then destroy it. 1 Answer

scripting for animation 0 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