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 ICHeeryI · Oct 02, 2013 at 01:35 PM · arraypositionaccessfrom

Access specifc gameobject position in array

Hello there, I have an array:

 var target : GameObject[]; //the object's target

I get all game objects with same tag and store them in that array. But I can't get specifc transform position. I tried something like this:

 var tpos =  target[1].transform.position;
 transform.position = Vector3( Random.Range(tpos.position.x - 10, tpos.position.x +10), transform.position.y,Random.Range( tpos.position.z - 10,tpos.position.z + 10));

But I get errors(when I run game). So all I want is to random position my object, but near specific object in array.Thanks.

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 robertbu · Oct 02, 2013 at 02:02 PM 0
Share

You need to show more of your code and explain what errors you are getting.

2 Replies

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

Answer by clunk47 · Oct 02, 2013 at 04:08 PM

I'd first, get an array of all Transforms in the scene, then use a Generic List to create a list of all the Transforms in your scene with a specific tag. Use the list count to create your random index int, then assign a new value each time you fire your code. In this example, I used Vector3.up as my offset, because I used a scene with 10 cubes tagged, then one untagged cube to attach this script to, it will act like your "player". Each time you press 'E', your main cube will end up on top of another randomly picked cube from the list. Hope this addresses your question well enough. You'll obviously need to replace "YourTag" for this to work.

 import System.Collections.Generic;
 
 #pragma strict
 
 private var objectArray : Transform[];
 private var objectList : List.<Transform>;
 private var objectToMoveTo : Transform;
 private var offset : Vector3;
 private var index : int;
 
 function Start()
 {
     objectArray = GameObject.FindObjectsOfType(Transform);
     objectList = new List.<Transform>();
     for(var t : Transform in objectArray)
     {
         if(t.gameObject.tag == "YourTag")
         {
             objectList.Add(t);
         }
     }
     index = Random.Range(0, objectList.Count - 1);
     objectToMoveTo = objectList[index];
     offset = Vector3.up;
 }
 
 function Update()
 {
     if(Input.GetKeyDown(KeyCode.E))
     {
         transform.position = objectToMoveTo.position + offset;
         index = Random.Range(0, objectList.Count - 1);
         objectToMoveTo = objectList[index];
     }
 }
Comment
Add comment · Show 2 · 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 ICHeeryI · Oct 02, 2013 at 05:04 PM 1
Share

Wow, thanks for code. I think I will learn something new from this. I think that I can solve my problem without using arrays, but I just want to learn it(arrays). $$anonymous$$uch appreciate.

avatar image clunk47 · Oct 02, 2013 at 05:05 PM 0
Share

Here is more information on System.Collections.Generic.List, glad I could be of help :D

avatar image
-2

Answer by Trey3Stone · Oct 02, 2013 at 02:12 PM

You are using transform.position = when you need to be referencing the GameObject. Do target[1].transform.position = .

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 mattssonon · Oct 02, 2013 at 02:16 PM 0
Share

I think he's trying to apply the position to the script's game object.

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

17 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

Related Questions

How can I access inspector-set variables through a class? 1 Answer

Array.Push() for Vector3[] or how to add items to Vector3 array without knowing index 1 Answer

How do I find the position of an element in an array? 3 Answers

Mouse Position to array 2 Answers

Can't access variable from another script. 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