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 /
  • Help Room /
avatar image
0
Question by lachlan_orton · Feb 18, 2019 at 08:12 AM · c#scripting problemscripting beginnerfps controllerscriptingproblem

How to rotate RigidBodyFPSController (C#)

HI all,

I have a portal mechanic in my project. I want it so when the Player collides with the portal, not only does it send them out through the other portal, but it also spins them 180 degrees to the left/right.

I have some code working. The portal teleport function works perfectly, but the rotating the player part is the issue.

Say I'll walk into the BLUE portal in a North direction, When I hit that BLUE portal, I get sent out the RED portal. I do turn 180 degrees for half a second, but then the character auto-spins itself back in the direction I entered the BLUE portal.

How would I rectify this spin problem? Pretty new to C# so it's a learning process for me.


Photos attached of code and a quick video of the auto-spin problem. Code CODE IMGUR.NET IMGUR LINK =: https://i.imgur.com/SV7HiRF.png


Cheers all.

Comment
Add comment · Show 3
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 xxmariofer · Feb 18, 2019 at 09:23 AM 0
Share

hello, i cant see your code can you reupload it?

avatar image lachlan_orton xxmariofer · Feb 18, 2019 at 11:17 AM 0
Share

Sure, I'll upload it to I$$anonymous$$GUR https://i.imgur.com/SV7HiRF.png alt text

avatar image xxmariofer lachlan_orton · Feb 18, 2019 at 11:30 AM 0
Share

hard to say, that script isnt the problem, somewhere else you must be applying forces to the rigidbody of the player, can you share the player script¿? since somewhere else you must be applying a force.

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by ray2yar · Feb 18, 2019 at 11:38 AM

When you copy code - use the "Coder Sample" button, and then copy and paste.

Anywho, your code to rotate should work. So, the problem is elsewhere. I suspect it's in your playerMotor. The user is pressing forward but in the instant you teleport , forward is toward the blue portal. A few things you could do:

First, instead of having the portal change the player's orientation with a rotation, have it tell the playerMotor to use the rigidbody to do this... SendMessage will work fine for this. On the player motor perform your rotation and disable control input for a split second to allow the player to reorient themselves.

Second thing to try: make your rotation more "generic" ... here's what I mean... let's assume you want the player to face in the forward direction of the portal regardless of which angle they came in from (they could hit from the sides, in which case you probably don't want to spin 180 degrees). So instead, set the rotation to be the forward direction of the portal (or -1* it if they are facing the otherway).

 if(other.tag == "Player")
 {
      other.transform.forward = transform.forward;
 }

Also, you probably don't need a reference to the player object.

Comment
Add comment · Show 7 · 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 lachlan_orton · Feb 19, 2019 at 07:42 AM 0
Share

I've added transform.forward to my portal teleport script, so next step is to "control player motor"

Where in the RigidbodyFirstPersonController where would I implement some code so when I hit a portal, it stops control input for a second and rotates the character in the forward direction of the portal?

Cheers

avatar image ray2yar lachlan_orton · Feb 19, 2019 at 11:37 AM 0
Share

So you will either set the rotation using transform OR with the rigidbody; not both.

This code SHOULD do what you're looking for:

    //put on your portal
      void OnTriggerEnter(Collider other)
     {
         if(other.tag == "Player")
         {
             other.Send$$anonymous$$essage("PauseInput", transform.rotation);
         }
     }
  
     //all of this goes on the script that controls the player
 
     //reference to the rigidbody
     public Rigidbody RB;
 
     //called by the portal by sendmessage, assigns a rotation
     public void PauseInput(Quaternion rot)
     {
         RB.rotation = rot;
         RB.is$$anonymous$$inematic = true;
         Invoke("ResumeInput", 0.1f);
     }
 
     void ResumeInput()
     {
         RB.is$$anonymous$$inematic = false;
     }
avatar image lachlan_orton ray2yar · Feb 19, 2019 at 08:24 PM 0
Share

Here is my current code now. I can see that the code toggles "Is $$anonymous$$inematic" in the RigidbodyFPSController, and it stops me moving once I enter the portal for a second before resu$$anonymous$$g controls, but no rotation of the player actually happens. Any last help would be highly appreciated :)

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class StepThroughPortal : $$anonymous$$onoBehaviour
 {
     public GameObject otherPortal;
 
     // Start is called before the first frame update
     void Start()
     {
         
     }
 
     // Update is called once per frame
     void Update()
     {
         
     }
 
     void OnTriggerEnter(Collider other)
     {
         Debug.Log("Hit Portal");
         if(other.tag == "Player")
         {
             other.transform.position = otherPortal.transform.position + (otherPortal.transform.forward * 3);
             other.Send$$anonymous$$essage("PauseInput", transform.rotation);
         }
     }
 
     //reference to the rigidbody
     public Rigidbody RB;
 
     //called by the portal by sendmessage, assigns a rotation
     public void PauseInput(Quaternion rot)
     {
         RB.rotation = rot;
         RB.is$$anonymous$$inematic = true;
         Invoke("ResumeInput", 0.1f);
     }
 
     void ResumeInput()
     {
         RB.is$$anonymous$$inematic = false;
     }
 }
 


avatar image ray2yar lachlan_orton · Feb 19, 2019 at 10:00 PM 0
Share

Try it with the transform ins$$anonymous$$d. You might also set all forces and velocities to the rigidbody to zero

avatar image lachlan_orton ray2yar · Feb 19, 2019 at 11:11 PM 0
Share

I keep getting this error in the console whenever I go through a portal:

 Send$$anonymous$$essage PauseInput has no receiver! UnityEngine.Component:Send$$anonymous$$essage(String, Object) StepThroughPortal:OnTriggerEnter(Collider) (at Assets/StepThroughPortal.cs:27)
Show more comments

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

680 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

Related Questions

Try part of C# not being Read 1 Answer

Trying to make a Parkour Platformer! 0 Answers

Why won't my model rotate up on X axis? 1 Answer

OnTriggerExit does not work 0 Answers

Help with Script 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