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 ALEGOMan · Dec 23, 2014 at 06:52 PM · javascript3dblenderfacing

How do I make my imported 3d model face the player?

I made a little 3d character in blender and imported him into unity, I added a AI script, but the character supposed to "face" the player, but instead the top of his head faces the player. No matter how many different ways I rotate the character both in blender and unity, I stil get the same result.alt text pic and code included if need be.

 var Distance;
 var Target : Transform;
 var lookAtDistance = 25.0;
 var chaseRange = 15.0;
 var attackRange = 1.5;
 var moveSpeed = 5.0;
 var Damping = 6.0;
 var attackRepeatTime = 1;
 
 private var attackTime : float;
 
 var controller : CharacterController;
 var gravity : float = 20.0;
 private var MoveDirection : Vector3 = Vector3.zero;
 
 function Start()
 {
     attackTime = Time.time;
 }
 
 function Update()
 {
     Distance = Vector3.Distance(Target.position, transform.position);
     
     if(Distance < lookAtDistance)
     {
         lookAt();
     }
     
     if(Distance > lookAtDistance)
     {
         //renderer.material.color = Color.green;
     }
     
     if(Distance < attackRange)
     {
         attack();
     }
     else if(Distance < chaseRange)
     {
         chase();
     }
 }
 
 function lookAt()
 {
     //renderer.material.color = Color.yellow;
     var rotation = Quaternion.LookRotation(Target.position - transform.position);
     transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * Damping);
 }
 
 function chase()
 {
     //renderer.material.color = Color.red;
     
     moveDirection = transform.forward;
     moveDirection *= moveSpeed;
     
     moveDirection.y -= gravity * Time.deltaTime;
     controller.Move(moveDirection * Time.deltaTime);
 }
 
 function attack()
 {
     if(Time.time > attackTime)
     {
         Debug.Log("Inset Attack and health loss here");
         var GUIManager : GUIManager = GameObject.Find("First Person Controller").GetComponent("GUIManager");
         GUIManager.AdjustCurrentHealth(-10);
         attackTime = Time.time + attackRepeatTime;
     }
 }
 
 //agressive enemy
 function ApplyDamage()
 {
     chaseRange += 30;
     moveSpeed += 2;
     lookAtDistance += 40;
 }
 
help.png (235.5 kB)
Comment
Add comment · 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 ALEGOMan · Dec 23, 2014 at 09:25 PM 0
Share

Thanks for the help, it was actually -z forward +y up !(only slight problem now is that the character seems to not be looking precisely at the player(looking off the right) i'm not sure what would solve that. alt text

help2.png (98.5 kB)

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by jmgek · Dec 23, 2014 at 09:39 PM

(-z) is forward in unity. I would change it in maya because you don't want to rely on code to change the transforms of objects, you can really mess others up and yourself in the future. A little advice for you, try passing out arguments so you can start making more robust code.

     function lookAt(Transform anyPositionToLookAt)
      {
          //renderer.material.color = Color.yellow;
          var rotation = Quaternion.LookRotation(anyPositionToLookAt.position - transform.position);
          transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * Damping);
      }
 
Comment
Add comment · 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 ALEGOMan · Dec 24, 2014 at 12:56 AM 0
Share

alt text It's facing the right way, but it is always looking slightly off center, my player is a capsule and it seems to be facing the bottom left of the capsule in the scene view...

help2.png (98.5 kB)
avatar image Srki94 · Dec 24, 2014 at 01:21 AM 0
Share

Z is forward in Unity and to actually apply it in Blender (even if you have it as export setting) you have to use "Apply transform" from Blender. Anyway, you have that figured out I can see.

So I would check next thing - transform and your camera. Even tho your transform of player is a capsule, camera may be off for some reason and char is actually looking at it properly but you don't see that (because char doesn't care about camera but rather transform) Try to use transform of hands maybe?.

Try with other object as well, to make sure that problem is not with model itself.

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Enemy doesn't face player 0 Answers

I am having an issue with the rotation of a child 1 Answer

How to add texture to Blender objects properly? 2 Answers

White lines appearing when importing from Blender 0 Answers

Can someone help me fix my Javascript for Flickering Light? 6 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