• 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
Question by TheCreatorultim · Dec 10, 2018 at 12:18 AM · c#rotationchangelookat

Change output rotation of this Lookat script?

 {
     Quaternion _lookRotation =
         Quaternion.LookRotation((to - transform.position).normalized);

     transform.rotation =
         Quaternion.Lerp(Quaternion.Euler(transform.rotation.x, transform.rotation.y, transform.rotation.z + 90), _lookRotation, Time.deltaTime * turn_speed);
 }

This will always turn from the Z side, though i'd like to have it turn from the X side? how could i change it?

full code:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class rotate : MonoBehaviour {
 
     public float turn_speed;
     public float Find_radius;
     public string TagToSearchFor;
 
     [Header ("Front, Left, Back, Top, Bottom")]
     [Tooltip("Z points to front")]
     public string Direction;
 
     
     private Collider[] all_found;
     private Transform Target;
 
     private void check() {
 
         all_found = Physics.OverlapSphere(gameObject.transform.position, Find_radius);
 
         if(all_found.Length != 0)
         {
             foreach(Collider col in all_found)
             {
                 if(col.tag == TagToSearchFor)
                 {
                     Target = col.gameObject.transform;
                     break;
                 }
             }
         }
     }
 
     protected void rotateTowards(Vector3 to)
     {
         Quaternion _lookRotation =
             Quaternion.LookRotation((to - transform.position).normalized);
 
         transform.rotation =
             Quaternion.Lerp(Quaternion.Euler(transform.rotation.x, transform.rotation.y, transform.rotation.z + 90), _lookRotation, Time.deltaTime * turn_speed);
     }
 
     private void Update()
     {
         try
         {
             rotateTowards(Target.position);
         }
         catch
         {
             check();
         }
     }
 }
 

Comment

People who like this

0 Show 1
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 ProtoTerminator · Dec 13, 2018 at 07:19 PM 0
Share

Side note: It's standard c# practice to name your classes and functions with PascalCase (Capital letter at start) rather than camelCase (lower case letter at start).

2 Replies

· Add your reply
  • Sort: 
avatar image

Answer by ProtoTerminator · Dec 10, 2018 at 02:19 AM

Quaternion.LookRotation accepts a forward direction and an optional up direction. If you don't provide an up direction, it defaults to Vector3.up. So you can provide your own up direction (Vector3.right/Vector3.forward/etc).


[EDIT] After re-reading your question, it looks like you want to have the transform's X axis look at the target instead of the transform's Z axis. According to the documentation, LookRotation makes the transform look on its Z axis. So all you need to do is rotate your transform 90 degrees after you set the lookrotation. transform.rotation = Quaternion.LookRotation((transform.right - transform.position).normalized); or, even easier transform.Rotate(0, 90, 0);


[EDIT2] Here's the code (from my comment):

 protected void rotateTowards(Vector3 to)
 {
     Quaternion _lookRotation = Quaternion.LookRotation((to - transform.position).normalized);
 
     transform.Rotate(0, -90, 0);
     transform.rotation = Quaternion.Lerp(transform.rotation, _lookRotation, Time.deltaTime * turn_speed);
     transform.Rotate(0, +90, 0);
 }

In any case, it's probably easier to just parent the object you're trying to rotate under an empty gameobject, and just rotate the empty gameobject.

Comment
nicholasw1816

People who like this

1 Show 2 · 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 TheCreatorultim · Dec 10, 2018 at 09:07 AM 0
Share

If i use Quaternion.LookRotation((transform.right - transform.position).normalized); It'll still look from the Z axis. While transform.Rotate(0, 90, 0); has some sort of effect, it bugs it alot.

Would that be me, or is it bugged in general?

avatar image ProtoTerminator TheCreatorultim · Dec 13, 2018 at 07:08 PM 0
Share

Oh I made a mistake with the lookrotation. I believe it should just be Quaternion.LookRotation(transform.right). What sort of effect does transform.Rotate have? That should simply instantly rotate it 90 degrees.

Maybe it's because you should Rotate -90 degrees before doing the lerp rotation, then after the lerp Rotate +90 degrees. I'll update my answer for that code.

avatar image

Answer by nicholasw1816 · Dec 10, 2018 at 02:29 PM

Try this then tell me what it does. You have to declare a up direction. Try one of these till it works. Vector3(1,0,0), or Vector3(0,1,0), or Vector3(0,0,1)

 Quaternion.LookRotation((to - transform.position).normalized, Vector3(0,0,1));







Comment

People who like this

0 Show 0 · 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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

573 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

Related Questions

Change output rotation of this Lookat script? 0 Answers

Flip over an object (smooth transition) 3 Answers

slowly rotate a object *need quick fix* 0 Answers

I need help writing a simple script for making an object face the mouse in 2D. 2 Answers

How to turn camera using LookAt() only along X and Y axis? 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