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 Orbytel · Oct 15, 2012 at 07:23 AM · charactercontrollerswapmount

Mounting a player character to a mount

Hi all,

I'm fairly new to Unity, and have been working on a third person game.

At the moment I have my main player character, which is a game object titled 'Player'. The player also has a pet which follows it around, and attacks enemies etc, and so far its working great.

I now want to add the option to have the Player character mount the Pet, disabling the follow script on the pet, and essentially changing the control input to the pet (so the Player assumes a 'sitting' animation, and the input moves the pet around).

I've been doing a fair bit of reading up on the issue, and have been trialling several different methods that have been asked on here- but none seem to address the issue entirely.

My first attempt involved making the player a parent of the pet object, and using a transform to move it to the player's location. While this worked, when I moved the player, the pet object stayed put.

I decided to change it around, and now have the player becoming a child of the pet object, and have used the following code in the ThirdPersonPlayerAnimation script on the Player object:

 function Update ()
 {    
     
     var playerController : ThirdPersonController =  GetComponent(ThirdPersonController);
     var currentSpeed = playerController.GetSpeed();
     
     //mount code
     var gigiTransform = GameObject.FindWithTag("Player").transform;
     var mount = GameObject.FindWithTag("Petride").transform;
     
     if (Input.GetButtonDown("Ride"))
     {
         if(gigiActive == true)
         {
             mount.parent = gigiTransform;
             mount.transform.localPosition = Vector3.zero;
             mount.transform.localRotation = Quaternion.identity;
             gigiActive = false;
         }
         else
         {
             mount.transform.parent = null;
             gigiActive = true;
         }
     }
 

From there I was going to add a simple if statement, that checked if (gigiActive == true) do her animation stuff. Else, change the character controller to the Pet.

Is this the best way to go about it, and how would I go about changing the input to the pets controller? If anyone has a better implementation method, i'd greatly appreciate it.

Thanks,

Luke

Comment
Add comment · Show 2
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 Fattie · Oct 15, 2012 at 07:31 AM 0
Share

just have an input script/system/etc on the Steed, and have an input script/system/etc on the Hero.

simply, disable one or the other. you could literally just disable/enable the components in question, or I think better, just use a boolean.

so inside "petControlSystem" you would just have a boolean "doNthingHere" and lines of code like

if (doNothingHere) return;

in that way you can easily keep track of what is happening etc. Hope it helps!

avatar image Orbytel · Nov 09, 2012 at 05:49 AM 0
Share

Thanks,

I ended up getting a workable solution, although its not perfect. I find that trying to move the player object to the mount can cause issues, even after disabling the collider.

I'll keep working on it, and just wanted to say thanks for your idea!

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.

Follow this Question

Answers Answers and Comments

10 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

Related Questions

Character Controller mouse click events 1 Answer

Object reference not set to instance of an object 2 Answers

Unity Flash, character jumps when the controller touches a step 0 Answers

Character - Collider With Scene 0 Answers

Character with controller flies off map. 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