• 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 DoubleJ169 · Mar 28, 2011 at 06:20 PM · androidtiltfalling-through-floor

Android Tilt Causing Falling Through Ground

Our character is falling through the ground when use tilt on an android tablet, but works just fine when we are using the keyboard to move. Any idea why this is happening? This is the script that we are moving with.

Edit: It appears to be passing through all Mesh Colliders. Anybody know a way around this?

var dir : Vector3 = Vector3.zero;

 // we assume that device is held parallel to the ground
 // and Home button is in the right hand

 // remap device acceleration axis to game coordinates:
 //  1) XY plane of the device is mapped onto XZ plane
 //  2) rotated 90 degrees around Y axis
 dir.x = -Input.acceleration.y;
 dir.z = Input.acceleration.x;

 // clamp acceleration vector to unit sphere
 if (dir.sqrMagnitude > 1)
     dir.Normalize();

 // Make it move 10 meters per second instead of 10 meters per frame...
 dir *= Time.deltaTime;

 // Move object
 transform.Translate (dir * speed);

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

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by DoubleJ169 · Mar 28, 2011 at 08:26 PM

I believe I fixed it for anybody that has this issue in the future. I changed the script to this:

var controller : CharacterController = GetComponent(CharacterController); var dir : Vector3 = Vector3.zero;

// we assume that device is held parallel to the ground // and Home button is in the right hand

// remap device acceleration axis to game coordinates: // 1) XY plane of the device is mapped onto XZ plane // 2) rotated 90 degrees around Y axis dir.x = -Input.acceleration.y; dir.z = Input.acceleration.x;

// clamp acceleration vector to unit sphere if (dir.sqrMagnitude > 1) dir.Normalize();

// Make it move 10 meters per second instead of 10 meters per frame... dir *= Time.deltaTime;

// Move object controller.Move (dir * speed);

Comment
Add comment · Show 1 · 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 AngryOldMan · Mar 28, 2011 at 08:55 PM 0
Share

that's great. Can you mark your answer as correct so that the website can archive it properly making it helpful for future 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

No one has followed this question yet.

Related Questions

roll ball in two axis using devices accelerometer. 1 Answer

Input.deviceOrientation Vs Screen.orientation 0 Answers

Ball maze android issues 1 Answer

The build version of my android game doesn't work (in unity remote it works perfectly) 0 Answers

Tilt movement with Unity Android 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