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 Fox_GAMING · Nov 22, 2020 at 03:26 PM · c#transformplayerparent-childvehicle

How can I parent the player to another GameObject (Vehicle)?

Hi, I'm working on a game, where one of the mechanics, is that you can ride on the back of a truck.

And yes, I'm aware, I'm sure this question has been asked a million times before, but I feel like I've looked at / tried everything, and I cannot seem to be able to get / find / get anything that works.

In order to achieve this, I imagined making the player be parented to the truck, and the truck would be able to move around, moving the player around with it. I looked it up, and found a script, and tried it. It would not work. Instead, it would warp the character / player, flattening the character, and widening the character. The character would somewhat move, but would mainly get stretched and distorted, and if I drove off the platform, the character would get stretched along the y / height axis, up into the air / sky, then skew (or maybe rotate, I can't tell, entirely, sorry,), towards the vehicle.

Here is my current script: using UnityEngine; using System.Collections;

 public class RideTruck : MonoBehaviour
 {
     bool guiShow = false;
     bool isRiding = false;
 
     public GameObject handle;
     public GameObject player;
     public GameObject truck;
     public GameObject truckparent;
 
     public int rayLength = 2;
 
     void Update()
     {
         RaycastHit hit;
         Vector3 fwd = transform.TransformDirection(Vector3.forward);
 
         if (Physics.Raycast(transform.position, fwd, out hit, rayLength))
         {
             guiShow = true;
             if (Input.GetKeyDown("e") && isRiding == false)
             {
                 isRiding = true;
                 guiShow = false;
                 truckparent.transform.parent = truck.transform;
                 player.transform.parent = truckparent.transform;
             }
             else if (Input.GetKeyDown("e") && isRiding == true)
             {
                 isRiding = false;
                 guiShow = false;
                 transform.parent = null;
             }
         }
         else
         {
             guiShow = false;
         }
     }
     void OnGUI()
     {
         if (guiShow == true && isRiding == false)
         {
             GUI.Box(new Rect(Screen.width / 2, Screen.height / 2, 100, 25), "Ride Truck");
         }
         else if (guiShow == true && isRiding == true)
         {
             GUI.Box(new Rect(Screen.width / 2, Screen.height / 2, 100, 25), "Stop Riding");
         }
     }
 }

Also, the character will either distort, or not move at all. As of right now, what it seems to be doing, is no matter what, it won't move. It sometimes will distort, but it never seems to move anymore now.

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
1

Answer by NoahDaNerd · Nov 22, 2020 at 03:37 PM

 transform.parent = gameObjectYouWantAsParent.transform;

or

 transform.parent = transformYouWantAsParent;

on player script

If you do not want the player to squish, then the parent needs to be of scale 1, 1, 1. If the parent is not of scale 1, 1, 1, then you need to use a custom parenting system to apply any translations and rotations that the parent has to the player. There are many of these online.

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 Fox_GAMING · Nov 22, 2020 at 03:51 PM 0
Share

@NoahDaNerd Yeah, the truck has non-uniform scaling, but the player does not. And, sorry, but do you know of any of these custom parenting systems? I can't find any. I think I might have something like that, but the character won't move, no matter what, it seems.

avatar image
1

Answer by S-khan · Nov 22, 2020 at 03:51 PM

Here is your solution with a proper explanation. Always try to maintain (1,1,1) scale.

Comment
Add comment · Show 5 · 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 Fox_GAMING · Nov 22, 2020 at 03:57 PM 0
Share

@S-khan I'm pretty sure I've kind of tried this already, I have an empty GameObject with a scale of 1,1,1, set as a child to the truck. I have another empty GameObject, with a scale set to 1,1,1, that I've made the parent of the First Person Controller. I've tried using a whole bunch of combinations of these, and none seem to work. (Like, I've tried parenting the Empty Player GameObject to the Empty Truck GameObject, Player to Empty Truck, etc..). It will either won't move, or distort and stretch like crazy. I have no idea what's going wrong.

avatar image S-khan · Nov 22, 2020 at 04:37 PM 0
Share

Then, try Transform.SetParent(), with worldPositionStays is equal to true.

avatar image Fox_GAMING S-khan · Nov 22, 2020 at 05:37 PM 0
Share

Nope, that won't work.

avatar image Fox_GAMING S-khan · Nov 22, 2020 at 05:42 PM 0
Share

Ok, so I've essentially got something that works, here's the code:

 using UnityEngine;
 using System.Collections;
 
 public class RideTruck : $$anonymous$$onoBehaviour
 {
     bool guiShow = false;
     bool isRiding = false;
 
     public GameObject handle;
     public GameObject player;
     public GameObject truck;
     public GameObject playerAvatar;
     public FirstPersonAIO aio;
     //public GameObject truckparent;
 
     public int rayLength = 2;
 
     void Start()
     {
         playerAvatar = GameObject.FindGameObjectWithTag("PlayerChild");
 
         GameObject fpsaio = GameObject.Find("FirstPerson-AIO");
         aio = fpsaio.GetComponent<FirstPersonAIO>();
         
     }
 
     void Update()
     {
         RaycastHit hit;
         Vector3 fwd = transform.TransformDirection(Vector3.forward);
 
         if (Physics.Raycast(transform.position, fwd, out hit, rayLength))
         {
             guiShow = true;
             if (Input.GetKeyDown("e") && isRiding == false)
             {
                 isRiding = true;
                 guiShow = false;
                 //truckparent.transform.parent = truck.transform;
                 //player.transform.parent = truckparent.transform;
                 player.transform.parent = truck.transform;
                 playerAvatar.transform.parent = truck.transform;
 
                 aio.playerCan$$anonymous$$ove = false;
                 Debug.Log("Player$$anonymous$$ovement Should be Disabled!");
 
                 truck.GetComponent<SimpleCarController>().enabled = true;
 
             }
             else if (Input.GetKeyDown("e") && isRiding == true)
             {
                 isRiding = false;
                 guiShow = false;
                 transform.parent = null;
                 player.transform.parent = null;
                 playerAvatar.transform.parent = player.transform;
 
                 aio.playerCan$$anonymous$$ove = true;
                 Debug.Log("Player$$anonymous$$ovement Should Be Enabled!");
 
                 truck.GetComponent<SimpleCarController>().enabled = false;
 
             }
         }
         else
         {
             guiShow = false;
         }
     }
     void OnGUI()
     {
         if (guiShow == true && isRiding == false)
         {
             GUI.Box(new Rect(Screen.width / 2, Screen.height / 2, 100, 25), "Ride Truck");
         }
         else if (guiShow == true && isRiding == true)
         {
             GUI.Box(new Rect(Screen.width / 2, Screen.height / 2, 100, 25), "Stop Riding");
         }
     }
 }

However, the one issue is, is that the FirstPerson-AIO (The $$anonymous$$ain, Player GameObject,), won't move with the parent. The Avatar will, and, the FirstPerson-AIO GameObject is currently parent under the truck, but it just won't move with it. I need it to move with it, since it has the player movement script, and is what I'm using to pop up the interaction for the user to Start / Stop Riding.

avatar image Fox_GAMING S-khan · Nov 22, 2020 at 05:55 PM 0
Share

@S-khan Also, I guess I should probably try to explain what I'm really trying to do a bit more, because I realize now that I feel like even if I get this to work in the end, in the end, I feel like it isn't exactly like how I truly need it to be, which would probably (I'm guessing, at least,), change things. So, anyways, I'm essentially going to want to try to have the player grab onto this handle (once they look within the collision box, currently highlighted, and of which is a box with an orange transparent, shadeless material,), and then the trash truck will be able to move around, and they will still hold on, until the trash truck stops at it's next stop / destination / stop, in which the player will be able to press E again to get off. Example Image

examplegrabhandle-unity.png (67.0 kB)

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

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

Make a GameObject a Child of What it Collides With 2 Answers

Enemy Projectile is not flying in the right direction (needs to fly toward Player) 1 Answer

Distribute terrain in zones 3 Answers

Multiple Cars not working 1 Answer

Need your help by movement 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