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 bhavinbhai2707 · Feb 01, 2018 at 10:59 AM · c#rotationscripting problemrotate object

CCTV behavior rotation issue

I am making a CCTV camera and want to create its rotating behavior once it gets to its maxRotation angle it should reverse and rotate towards minRotation angle and vice-versa. i am using this code but it doesn't seem to work the camera stucks at maxRotation angle but doesnt reverse to minRotation angle. how can i solve it??

             public float minRotation = -45;
             public float maxRotation = 45;
             public float rotSpeed = 50f;
             private void Update()
             {
                 cctvTurnBehaviour();
             }
         
             private void cctvTurnBehaviour()
             {
             //    if(Mathf.Approximately(transform.localRotation.y,minRotation))
                 if((int)transform.rotation.y >= (int)minRotation)
                 transform.Rotate(new Vector3(0f, rotSpeed * Time.deltaTime, 0f));
                 else
                     transform.Rotate(new Vector3(0f, -rotSpeed * Time.deltaTime, 0f));
         
                 LimitRotation();
             }
         
             private void LimitRotation()
             {
                 Vector3 currentRotation = transform.localRotation.eulerAngles;
                 currentRotation.y = Mathf.Clamp(currentRotation.y, minRotation, maxRotation);
                 transform.localRotation = Quaternion.Euler(currentRotation);
             }
     
     

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
Best Answer

Answer by KittenSnipes · Feb 01, 2018 at 11:31 AM

I think this script should work for that. I typed it on my phone so hopefully it helps in some way. Cheers.

 public float maxRotation = 180;
 public float minRotation = 0;
 public float rotateSpeed = 10;
 void Update() {
     if (transform.rotation.y >= maxRotation) {
         rotateDirection *= -1;
     }
 
     if (transform.rotation.y <= minRotation) {
         rotateDirection *= -1;
     }
 
     transform.Rotate(0, rotateDirection * rotateSpeed * Time.deltaTime, 0);
 }
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 bhavinbhai2707 · Feb 01, 2018 at 06:19 PM 0
Share

not working. it works very rarely but shows wierd behavior when works(it rotates from 0 to -180 clockwise and then goes anticlockwise) or else it goes in circle

avatar image KittenSnipes · Feb 01, 2018 at 06:30 PM 0
Share

Use Euler angles and keep between the max and $$anonymous$$ rotation I’ll post an example if needed

avatar image KittenSnipes · Feb 01, 2018 at 09:11 PM 0
Share

Here is an updated version of @Obsessi0n script that is easier to modify. Hopefully it works to your liking. @bhavinbhai2707

 private bool moveRight = false;
 public float speed = 0.25;
 public float maxRotation = 180;
 private Vector3 rodar;

 private void Start()
 {
     rodar = new Vector3(0f, 0f, 0f);
     transform.eulerAngles = rodar;
 }

 void Update()
 {
     if (moveRight == false)
     {
         Debug.Log(transform.eulerAngles.y);
         rodar = new Vector3(0f, -maxRotation * speed * Time.deltaTime, 0f);
         transform.Rotate(rodar);

         if (transform.eulerAngles.y >= maxRotation && transform.eulerAngles.y > 0)
         {
             moveRight = true;
         }
     }

     if (moveRight == true)
     {
         Debug.Log(transform.eulerAngles.y);
         rodar = new Vector3(0f, maxRotation * speed * Time.deltaTime, 0f);
         transform.Rotate(rodar);

         if (transform.eulerAngles.y > maxRotation && transform.eulerAngles.y < 360)
         {
             moveRight = false;
         }
     }
 }
avatar image bhavinbhai2707 · Feb 02, 2018 at 08:31 AM 0
Share

@$$anonymous$$ittenSnipes it worked perfectly fine mate, absolutely the way i wanted. i still don't know why if conditions in previous scripts were not getting executed, and also i need to research a bit on euler angles anyways thanks alot mate u saved my day :)

avatar image KittenSnipes bhavinbhai2707 · Feb 02, 2018 at 08:32 AM 0
Share

@bhavinbhai2707

No problem glad I could help. Cheers

avatar image
0

Answer by Obsessi0n · Feb 01, 2018 at 11:24 AM

I just eddited it and its working @KittenSnipes used a bit of your code thanks for it ^^. @bhavinbhai2707 try this now it worked on my computer.

 public class cctv : MonoBehaviour
 {
 
     
     public bool moveRight = false;
     private Vector3 rodar;
 
     private void Start()
     {
         rodar = new Vector3(0f, 0f, 0f);
         transform.eulerAngles = rodar;
     }
     void Update()
     {
         if (moveRight == false)
         {
             Debug.Log(transform.rotation.y);
            rodar = new Vector3(0f, -50f*Time.deltaTime, 0f);
             transform.Rotate(rodar);
 
             if (transform.rotation.y >= 0.20f && transform.rotation.y <= 0.3f)
             {
                 moveRight = true;
             }
 
         
         }
 
         if (moveRight == true)
         {
             Debug.Log(transform.rotation.y);
             rodar = new Vector3(0f, 50f * Time.deltaTime, 0f);
             transform.Rotate(rodar);
             if(transform.rotation.y <= -0.39f && transform.rotation.y >= -0.5f)
             {
                 moveRight = false;
             }
         }
 
    
     }
 }

Comment
Add comment · Show 6 · 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 Obsessi0n · Feb 01, 2018 at 11:44 AM 0
Share

Edit the values to your liking it may be way to fast.

avatar image bhavinbhai2707 Obsessi0n · Feb 01, 2018 at 06:17 PM 0
Share

Doesn't seem to work, its is behaving like the clocks hand(like ticking) and snaps directly to $$anonymous$$rotation once it reaches maxRotation.

avatar image Obsessi0n bhavinbhai2707 · Feb 01, 2018 at 06:39 PM 0
Share

I made the code simpler and tested it and yes it is snapping back to 0 I dont know why I wil try to find out.

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

463 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

Related Questions

Flip over an object (smooth transition) 3 Answers

[C#] Quaternion Rotations with Input.GetAxis problems. 1 Answer

Reletive rotation problems. (C#) 2 Answers

Game Object Tracker with Rotation of Observing game object 1 Answer

How do i make a smooth rotation using negative degrees? 1 Answer


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