• 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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

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

Void still running even when if statement is not fulfilled? 0 Answers

How to cancel a if statement once touching a collider 1 Answer

I am trying to close the GUI if its already active and the user clicks 0 Answers

If/else statement is always else 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