统一使用Accelometer,在场景中移动游戏对象

时间:2016-09-12 18:44:01

标签: unity3d accelerometer unityscript unity5 unity3d-2dtools

我将2个游戏对象放在屏幕的左下角和右上角。所以我使用2个游戏对象来形成边框。并使用boundary类创建一个绑定,以便它将停止我的gameobject的枢轴点,我将使用accelometer将其移动到绑定内(这意味着我有2个边框,外边框和内边框,我使用边界绘制内边框从公式I导出的宽度和高度计算。)

这是代码

void Start () 
{
 valueOfHeight = (Screen.height * 110 )/ 320;
 valueOfWidth = (Screen.width * 110 )/ 480;

 Boundaries = new Bounds (new Vector3(Screen.width/2,Screen.height/2,0f),new Vector3(Screen.width - valueOfWidth,Screen.height - valueOfHeight,0f));

 }

 void Update () 
 {
   if(gameObject.transform.position.x > Cornerpoints [1].transform.position.x &&
    gameObject.transform.position.x < Cornerpoints [3].transform.position.x&&
    gameObject.transform.position.y > Cornerpoints [1].transform.position.y&&
gameObject.transform.position.y < Cornerpoints [3].transform.position.y) 
   {
    Debug.Log("1");
    gameObject.transform.position =   Boundaries.ClosestPoint(gameObject.transform.position);

if (Boundaries.Contains (gameObject.transform.position)) 
{
   Debug.Log("2");
  direction = new Vector3 ((Input.acceleration.x), (Input.acceleration.y), 0);
}

但是这里的问题我的游戏对象是在边界的一侧(大多数是左侧)猛拉。如果问题出现在所有方面意味着,我的代码是错误的。但它只发生在边界的左侧和我检查了日志,(我保留了日志1和2),看到当gameobejct到达边框的左侧时,它的1只是执行所以它看起来像抽搐。但它不是发生在所有方面。我想要知道为什么?提前致谢。

0 个答案:

没有答案