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 /
avatar image
0
Question by YagoV · Jan 23, 2018 at 09:33 PM · uiinstantiatepositioncanvas

Not instantiating prefab in the right place after 2017 update

This is the code I'm using:

     //Creates a Matrix with sizexsize
     Transform canvas = GameObject.Find("Canvas").transform;
     matrix = new GameObject[size, size];
     float tileSize = 30.0f;
     float corrector = tileSize * size / 2;
     for (int i = 0; i < size; i++)
     {
         for (int j = 0; j < size; j++)
         {
             float tempX = i * tileSize + Screen.width / 2 - corrector;
             float tempY = j * tileSize + Screen.height / 2 - corrector;
             matrix[i,j] = (GameObject)Instantiate(prefabTile, 
                            new Vector3(tempX, tempY, 0),
                            Quaternion.identity, canvas);
             //CHECK: For some reasons all the gameObjects are getting
             //instantiated in the same spot ( the middle of the canvas )
             print(matrix[i, j].transform.position);
             matrix[i, j].name = string.Format("[{0},{1}]", i, j);
             //This next line solves the problem
             matrix[i, j].transform.position = new Vector3(tempX, tempY, 0);
         }
     }

I'm trying to spawn different button objects set in a panel form in canvas. Before the update ( from 5.6 to 2017.3) it worked as expected. After the update all the prefabs, which are mainly unity buttons, instantiated in the middle of the canvas. I checked that the position vector I was passing was correct and it is. To solve this problem I have to set the position again after the instantiation with the same exact values I passed on to the instantiate function.

I was able to find a momentary solution for this but I'd like to know why this might be happening to have a better understanding.

Thank you in advance!

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

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by Cornelis-de-Jager · Jan 23, 2018 at 10:55 PM

Your code looks fine, if it is breaking after an update I would suggest deleting the class and creating a new one.

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 YagoV · Jan 24, 2018 at 03:40 PM 0
Share

I just tried but unfortunately it didn't work. It's completely ignoring the position I give it to instantiate in. If the canvas has 400 x 200 it will instantiate the prefab at 200 x 100 regardless of the position I pass in the instantiate function. Did this parameter become useless when in Canvas in the new Update?

avatar image
0

Answer by YagoV · Jan 27, 2018 at 06:58 PM

Any Ideas???

I recently updated another project from 5.6 to 2017 and something similar happened. Before the update the bullet would have a force applied in the direction of the mouse cursor, but for some reason now it's firing up all the time. It seems like the rigidbody.AddRelativeForce is just acting like rigifbody.AddForce.

 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
 RaycastHit hit;
 if (Physics.Raycast (ray, out hit)) 
     mousePosition = hit.point;
 GameObject bulletGO =(GameObject)Instantiate(bulletPrefab,
 transform.position, 
 Quaternion.identity);
 bulletGO.transform.LookAt (mousePosition);
 Rigidbody bulletRB = bulletGO.GetComponent<Rigidbody> ();
 bulletRB.AddRelativeForce(Vector3.forward*1000);
     






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

152 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image 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 do i get the UI button position? 2 Answers

Get "CanvasSpace" position of UI element 1 Answer

instantiating elements in UI/Canvas 1 Answer

Can you Instantiate a Canvas into a scene? (Not objects inside of a canvas, but the canvas itself) 0 Answers

How to get accurate x/y for Rectangle Transform of Panel under canvas? 2 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