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 ashjack · Sep 23, 2013 at 05:36 PM · c#rotationplayerdistancenpc

Distance to object and rotation lock

Hi, I am making an NPC that when the player is close enough, will turn his head to look at the player. The NPC looks at me, but I want him to only look at me if I am within a certain distance. Also, his head can turn 360 degrees, how do I put on a rotation lock on the y axis, stopping the head from being any rotation other than the two that I define?

By the way, i am using C#.

Comment
Add comment · Show 4
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 robertbu · Sep 23, 2013 at 05:57 PM 0
Share

We could be more help if you posted your code.

avatar image ashjack · Sep 23, 2013 at 06:01 PM 0
Share
 using UnityEngine;
 using System.Collections;
 
 public class HeadLook : $$anonymous$$onoBehaviour {
 
 public Transform target;
  
      void Update()
      {
           if(target != null)
           {
                transform.LookAt(target);
           }
      }
 }
avatar image ashjack · Sep 23, 2013 at 07:04 PM 0
Share

Bumping time

avatar image Tanshaydar · Sep 23, 2013 at 08:54 PM 0
Share

First, you should calculate the distance with Vector3.Distance Second, you can calculate Quaternion and if it is more than a certain degree you should rotate whole transform with transform.rotate

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by robertbu · Sep 23, 2013 at 11:00 PM

Typically you want to way 12 to 24 hours before bumping. As for your question:

As @Tanshaydar suggests, Vector3.Distance() can be used to detect the distance:

 if (Vector3.Distance(target.position, transform.position) < someValue)

As for restricting the angle, an easy way is to compare the transform.forward of the body to the transform.forward of the head. You can use Vector3.Angle(). I don't know you code, so but you need access to the body the head is on:

 if (Vector3.Angle(transform.forward, body.forward) < someValue)

You also have one other issue. Since you don't rotate all the time, you likely don't want to use LookAt(). The issue is that since you don't know what the rotations is of the head when the object is acquired, the head can immediately snap from one rotation. You can solve this problem by rotating over time:

 Quaternion q = Quaternion.LookRotation(target.position - transform.position);
 transform.rotation = Quaternion.RotateTowards(transform.rotation, q, Time.deltaTime * speed);
Comment
Add comment · 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.

Follow this Question

Answers Answers and Comments

16 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

Related Questions

Flip over an object (smooth transition) 3 Answers

Resetting rotation with Quaternion.Euler 1 Answer

How to make an empty child object not rotate with parent? 1 Answer

how to make NPCs face my player? I'm a beginner 1 Answer

Edit this script so that the player stops at a distance and attack? 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