网上有许多相关代码不过或多或少不正确的说.
下面是修改过后正确的代码,只需将代码的脚本添加到有刚体上的组件即可.用作unity3d学习的笔记OO....
不能使用this.transform.Translate(dir * speed);
如果使用,物体将无法正常的旋转运动,比如球体的运动
最好使用 FixedUpdate()进行物体的持续施力,否则不同的主机Update()每秒的帧数是不同的,联网的时候会导致不同的主机上物体的运动速度不一
using UnityEngine;
using System.Collections;
public class BallMotivation : MonoBehaviour
{
private int speed = 12;
void FixedUpdate()
{
Vector3 dir = Vector3.zero;
dir.x = Input.acceleration.x;
dir.z = Input.acceleration.y;
if (dir.sqrMagnitude > 1)//向量规范化
{
dir.Normalize();
}
dir *= Time.deltaTime;
this.transform.GetComponent<Rigidbody>().AddForce(dir*speed, ForceMode.Impulse);
}
}