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 sebbo1473 · Apr 17, 2014 at 12:05 PM · rotationaxischaracter controlling

Character rotation

Hey,

Help me please to find out what is the best code to use in order to rotate my character along its' own Y axis. I use simple script to do that, but when I rotate the character, it is still walking the default way. So to say rotation doesn't affect the direction he walks in. How to establish this correspondence?

the script..

public var speed : float = 5.0f; public var character : GameObject;

function Update () {

 var r_a_hor: float = (Input.GetAxis("RightAnalogHorizontal"))*102.4;
 var r_a_ver: float = (Input.GetAxis("RightAnalogVertical"))*102.4;

 if(r_a_hor < -30)
 {
     character.transform.Rotate(0, r_a_hor * Time.deltaTime, 0);
 }
 if(r_a_hor > 30)
 {
     character.transform.Rotate(0, r_a_hor * Time.deltaTime, 0);
 }

}

Its my trial and error script so it might not make any sense at all.. :) Thanks in advance!

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 HarshadK · Apr 17, 2014 at 12:29 PM 0
Share

And how do you move your character forward?

avatar image sebbo1473 · Apr 17, 2014 at 02:48 PM 0
Share

mmm there u go...

void FixedUpdate () { float h = Input.GetAxis("Horizontal"); // setup h variable as our horizontal input axis

     float v = Input.GetAxis("Vertical");                // setup v variables as our vertical input axis

     anim.SetFloat("Speed", v);                            // set our animator's float parameter 'Speed' equal to the vertical input axis

     anim.SetFloat("Direction", h);                         // set our animator's float parameter 'Direction' equal to the horizontal input axis        

     anim.speed = animSpeed;                                // set the speed of our animator to the public variable 'animSpeed'

     //anim.SetLookAtWeight(lookWeight);                    // set the Look At Weight - amount to use look at I$$anonymous$$ vs using the head's animation

     currentBaseState = anim.GetCurrentAnimatorStateInfo(0);    // set our currentState variable to the current state of the Base Layer (0) of animation


     //Controls the movement speed
     if(v <= 0.0f)
     {
         mesh$$anonymous$$oveSpeed = -5;    
     }
     else
     {
         mesh$$anonymous$$oveSpeed = -11;
     }
     
     if(anim.layerCount ==2)
     {
         layer2CurrentState = anim.GetCurrentAnimatorStateInfo(1);    // set our layer2CurrentState variable to the current state of the second Layer (1) of animation
     }
     //Jump state
     if(Input.GetButton("Jump"))
     {
         anim.SetBool ("Jump", true);
     }
     else
     {
         anim.SetBool ("Jump", false);
     }
     //Run state
     if(Input.GetButton("Speed"))
     {
         anim.SetBool ("Run", true);
     }
     else
     {
         anim.SetBool ("Run", false);
     }


     /*Reload weapon state
     if(Input.GetButtonDown("Fire1"))
     {
         anim.SetBool("Reloading", true);
     }
     else
     {
         anim.SetBool("Reloading", false);
     }
     //Switch weapon state
     if (layer2CurrentState.nameHash != reloadState || currentBaseState.nameHash != switchWeaponState)
     {
         if(Input.GetButtonUp("Fire2"))
         {
             anim.SetBool("SwitchWeapon", true);
         }
     }
     if (layer2CurrentState.nameHash == switchWeaponState)
     {
         anim.SetBool("SwitchWeapon", false);
     }*/
 }

}

avatar image sebbo1473 · Apr 17, 2014 at 02:51 PM 0
Share

And that is the first part, sorry for mess!

using UnityEngine; using System.Collections;

// Require these components when using this script

[RequireComponent(typeof (Animator))]

[RequireComponent(typeof (CapsuleCollider))]

[RequireComponent(typeof (Rigidbody))]

public class PlayerControlScript : $$anonymous$$onoBehaviour

{ [System.NonSerialized]

 public float mesh$$anonymous$$oveSpeed = 4.0f;
 
 [System.NonSerialized]

 public float animSpeed = 1.5f;    


         // a public setting for overall animator animation speed
 
 private Animator anim;    


                     // a reference to the animator on the character

 private AnimatorStateInfo currentBaseState;


         // a reference to the current state of the animator, used for base layer
 private AnimatorStateInfo layer2CurrentState;    // a reference to the current state of the animator, used for layer 2

 static int reloadState = Animator.StringToHash("Layer2.Reload");                // and are used to check state for various actions to occur

 static int switchWeaponState = Animator.StringToHash("Layer2.WeaponSwap");
 

 void Start ()
 {
     // initialising reference variables
     anim = GetComponent<Animator>();                                          
     if(anim.layerCount ==2)
         anim.SetLayerWeight(1, 1);
 }
 
 void OnAnimator$$anonymous$$ove() //Tells Unity that root motion is handled by the script
 {
     if(anim)
     {
         Vector3 newPosition = transform.position;
         newPosition.z += anim.GetFloat("Speed")* mesh$$anonymous$$oveSpeed * Time.deltaTime;
         newPosition.x += anim.GetFloat("Direction") * mesh$$anonymous$$oveSpeed * Time.deltaTime;

         transform.position = newPosition;
     }
 }
avatar image sebbo1473 · Apr 17, 2014 at 02:52 PM 0
Share

this script is from tutorial and its for the animation, as far as i got it. But I wanted to make one to control the camera.

0 Replies

· Add your reply
  • Sort: 

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

21 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

Related Questions

Is there a way to lock my camera's rotation and movement on certain axis? 2 Answers

Rotation eulerangles not adjusting correctly... 2 Answers

How to modify the value of an axis without touching to the others ? 1 Answer

Smooth rotation about global axis instead of local axis. 1 Answer

How to lock character controller rotation axis? (Java) 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