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 Ulluses · Jun 27, 2017 at 03:29 PM · arraysif-statementsadvicedragrigidbody

Getting Component In An Array To Add To An Array

I have a working script for dragging around solo objects through a scene, it works alright but I need to allow the player to drag objects that overlap their selection zone. I'm still a learning programmer but I figure I need two arrays, I need to add all the parent objects to an array of viruses and then get the spring joint 2ds of all the parent objects in that array and then add them to a second array and set the connected anchor of each spring joint 2d to the input position.

I haven't used arrays much so I'd appreciate any insight to the construction of this logic, am I on the right path? Do I need two arrays? What would be the best way to do it?

 [SerializeField] private SpringJoint2D DragSpringJoint;
 [SerializeField] private SpringJoint2D[] DragSpringJoints;
 [SerializeField] private GameObject ActiveVirus;
 [SerializeField] private GameObject[] ActiveViruses;
 [SerializeField] private bool IsDragging;

 void Start ()
 {
     
 }

 void Update()
 {
     DragVirus();
 }

 // Drags a virus around by it's spring joint
 public void DragVirus()
 {
     // Updates the mouse position every frame
     Vector3 inputPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
     // If the player isn't already dragging and uses the left mouse button
     if (Input.GetMouseButtonDown(0) && !IsDragging)
     {
         // Creates a ray from the camera through a matrix into mouse position
         Ray ray = Camera.main.GetComponent<Camera>().ScreenPointToRay(Input.mousePosition);
         // Gets the hit object
         RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction, Mathf.Infinity);
         // If the clicked object is a virus object or it's selection zome
         if (hit.rigidbody.gameObject.tag == "Virus" || hit.rigidbody.gameObject.tag == "VirusZone")
         {
             // Declares the active virus for dragging
             ActiveVirus = hit.transform.gameObject;
             // Declares the dragging spring joint to be the active virus' spring joint
             DragSpringJoint = ActiveVirus.GetComponent<SpringJoint2D>();
             // Enables the spring joint
             DragSpringJoint.enabled = true;
             // Toggles the draggin bool
             IsDragging = true;
         }
     }
     // The above logic carries through to this statement by enabling IsDragging
     if (Input.GetMouseButton(0) && IsDragging)
     {
         // Sets the anchor point for the spring joint to the mouse position
         DragSpringJoint.connectedAnchor = inputPosition;
     }
     // If the player stops dragging then it flows from the previous statement to this one
     if (Input.GetMouseButtonUp(0) && IsDragging)
     {
         // Turns off the spring joint
         DragSpringJoint.enabled = false;
         // Sets the spring joint back to it's default value
         DragSpringJoint = null;
         // Sets the active virus back to none
         ActiveVirus = null;
         // Resets the dragging bool back to false ready for a new drag
         IsDragging = false;
     }
 }
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

0 Replies

· Add your reply
  • Sort: 

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

107 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 avatar image avatar image avatar image

Related Questions

how to instantiate an object from an array above the previously instantiated object from the same array? 1 Answer

Why does this loop throw an error if int questComplete rises above 1? 0 Answers

Managing In-Game Variables of Different Data Types 1 Answer

Defining a number of gameobjects from another gameobject 0 Answers

animation array trying to play all at once 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