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 Kinger61 · May 24, 2015 at 11:28 AM · c#androiderrormovementcharacter

Character Movement Problem

Currently my Character is controlled using left and right arrows to move left and right. I want to be able to tilt left and right to move left and right. I have tried multiple things and know u need to include gyro in the code. I have added some code in start and FixedUpdate which allows device to tilt towards player to move character right, i need to tilt left and right to move left and right only...any ideas?

 using UnityEngine;
 using System.Collections;
 
 // Require these components when using this script
 [RequireComponent(typeof (Animator))]
 [RequireComponent(typeof (CapsuleCollider))]
 [RequireComponent(typeof (Rigidbody))]
 public class PlayerControl_S : MonoBehaviour
 {
     [System.NonSerialized]                    
     public float meshMoveSpeed = 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");
 
     public float movementScale; 
     public Vector3 dir;
     
     
     void Start ()
     {
 
         //Vector3 dir = transform.position;
         dir = transform.position;
         dir.y = Vector3.Dot (Input.gyro.gravity, Vector3.up) * meshMoveSpeed;
         transform.position = dir;
 
         // initialising reference variables
         anim = GetComponent<Animator>();                                          
         if(anim.layerCount ==2)
             anim.SetLayerWeight(1, 1);
     }
 
     void OnTriggerEnter (Collider other)
     {
         if (other.tag == "Coin")
         {
             audio.Play();
             Start ();
         }
     }
 
     void OnAnimatorMove() //Tells Unity that root motion is handled by the script
     {
         if(anim)
         {
             Vector3 newPosition = transform.position;
             newPosition.z += anim.GetFloat("Speed")* meshMoveSpeed * Time.deltaTime;
             newPosition.x += anim.GetFloat("Direction") * meshMoveSpeed * Time.deltaTime;
             transform.position = newPosition;
         }
     } 
     
     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", 1f);                            // 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 IK 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
 
         //Vector3 dir = Vector3.zero;
 
         if (Input.deviceOrientation == DeviceOrientation.Portrait) 
         {
             dir.x = -Input.acceleration.y;
             //dir.x = Input.acceleration.x;
 
             if(dir.sqrMagnitude > 1)
             {
             dir.Normalize();
             dir *= Time.deltaTime;
             transform.Translate(dir * meshMoveSpeed);
             }
         
         }
 
         //Controls the movement speed
         if(v <= 0.0f)
         {
             meshMoveSpeed = 4;    
         }
         else
         {
             meshMoveSpeed = 6;
         }
         
         if(anim.layerCount ==2)
         {
             layer2CurrentState = anim.GetCurrentAnimatorStateInfo(1);    // set our layer2CurrentState variable to the current state of the second Layer (1) of animation
         }
            }
            }
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

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

19 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

Related Questions

Getting My Character to Move 1 Answer

Making a bubble level (not a game but work tool) 1 Answer

[Solved] Reading text file on Android 2 Answers

Make sphere shoot to Touch.position error 1 Answer

Edit this code? 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