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 /
  • Help Room /
avatar image
0
Question by ladiesandgonts · Mar 01, 2017 at 11:18 AM · vector3for-loop

instantiate objects between two mouseclicks

I am a newby to c# and unity!! I would appreciate a little help with my problem which is that I want to instantiate objects as I drag my mouse across the screen.

This is my script so far;

     if (Input.GetMouseButton (0)) 
     {




     

     

         ghoststartspot = Input.mousePosition;



         Debug.Log (ghoststartspot);
     
         









             

             Vector3 difference = blockmousescript.currentmousepoint - ghoststartspot;



             for (int change = 0; change < difference.magnitude; change++)
         {




                 Vector3 spawnblock = ghoststartspot + difference.normalized * change;

             
                 Vector3 blockspawn = new Vector3 (Mathf.RoundToInt (spawnblock.x), Mathf.RoundToInt (blockmousescript.currentmousepoint.y + height), Mathf.RoundToInt (spawnblock.z));


             GameObject blockspawnerx = Instantiate (ghostplenty, blockspawn, Quaternion.identity); 









         As you can see I use a for loop and try to use a normalized vector to represent the direction I want to instantiate in. Then the i++ in the for loop would allow me to instantiate "i" further along the vector each time the loop iterates through.

However while this mostly works it spawns hundreds of different objects at each point along the loop.

I have no idea why this is happening and would appreciate help to improve my understanding here. Ty

Comment
Add comment · Show 1
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 Deathfate · Mar 01, 2017 at 03:36 PM 0
Share

That is happening because each frame if you have your mousebutton pressed then It instantiates a gameobject. The real question is, what do you want to do? How many objects do you want to instantiate?

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by hexagonius · Mar 01, 2017 at 05:31 PM

Instead of GetMouseButton, you should be using GetMouseButtonDown. On the first click, save the mouse position to a variable. On the second click, subtract that position from the new current position and add half of it to the old position. That will give you the position in between last and current mouse position. Also instantiate your object and place it on second click. If it's the first or second click you could just use a boolean and toggle it true and false on each click.

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

104 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 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 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 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

Comparing distance of vector 3's on a dynamic growing list 0 Answers

Right Click and Drag Formation Line RTS 0 Answers

Finding the vertices of each edge of a mesh face found by a raycast hit 0 Answers

[SOLVED] Remove Vector3 Array step by step when GameObject spawned 1 Answer

how can I "play" the whole MoveTowards sequence after one click? 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