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 stevecrossan · Nov 18, 2013 at 04:39 PM · prefabsmotion

Do scripts get cloned with prefabs?

Hello, a strange one:

I have a prefab 'Car' (just a Cube in fact) with a simple Motor script attached:

function Update(){

transform.Translate(Vector3.forward Thrust Time.deltaTime);

}

With one copy of the prefab in the scene, it works as expected. However with 2 or more, I noticed that apparently neither object was moving. By looking in Scene view at runtime I could in fact see that the transforms are moving (the local origin orthogonal axes move around the screen) but somehow the Cube meshes are being left in their original positions.

Any clues at all about what this could be?

When prefabs are cloned, their scripts (and internal references to transform, gameObject etc.) are cloned and updated too right?

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 Landern · Nov 18, 2013 at 04:58 PM

Yes, you should get the scripts as well when Instantiating another object of the same type. Can you post your Cloning/Instantiate function? Are you perhaps getting the wrong object in the Hierarchy?

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 stevecrossan · Nov 18, 2013 at 05:27 PM 0
Share

Hi thanks for the answer.

I'm actually not instantiating these objects in code - I've just placed 2 copies of the prefab in the scene. Here's some detail if it helps:

Prefab name 'Car" Cube $$anonymous$$esh Standard $$anonymous$$eshRenderer Standard Rigidbody (using gravity, not kinematic) Standard Box Collider Vehicle$$anonymous$$otor.js script:

pragma strict

var Thrust : float = 3;

function Update () {

 transform.Translate(Vector3.forward * Thrust * Time.deltaTime);    

}

1) drag 1 prefab into scene; hit Play, object moves as expected

2) drag prefab a 2nd time into scene (from Prefabs folder); hit play; neither mesh moves. If I switch to Scene view with either object selected while game is running, I can see that the transform is moving.

avatar image
0

Answer by pvpoodle · Nov 18, 2013 at 05:32 PM

I havnt encountered this peculiar problem you are facing.

But as a work around i would suggest you create an empty gameobject attach the character motor script you are using to the empty and then child the car mesh you are using under the empty. you can rename the empty and create a prefab from it.

this way the mesh will be moved since the parent gameobject is being moved.

idealy you should be instantiating the prefabs from script, which has always worked well for me.

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

19 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

Related Questions

Problems about prefabs and velocity affected by scripts 0 Answers

Objects added to scene through extended editor not drawn until selected. 2 Answers

Prefab, referencing them, using their methods:bug or intentional? 1 Answer

Making a cloned particle emitter fire once only 2 Answers

Can prefabs drop attached scripts? 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