OnMouseDown函数if和else不起作用

时间:2017-08-17 14:09:34

标签: unity3d game-physics unity2d

我正在做团结项目。当我点击它时我想要一个物体上升。但是当它翻转时(当rotation.z高于90且低于275时),它会向下移动。因此,我必须增加负面推力,以便对象上升。但是游戏似乎没有检测到它或者这个功能不支持它。任何建议我将如何解决这个问题?

已修复!! 我只需将transform.up替换为Vector3.up

void OnMouseDown(){
        if(this.transform.rotation.z > 90 && this.transform.rotation.z < 275 ) {
            rb.AddForce (transform.up * -thrust);
            GetComponent<Rigidbody2D> ().velocity = Random.insideUnitSphere * 2;
        }
        else 
        {
            rb.AddForce (transform.up * thrust);
            GetComponent<Rigidbody2D> ().velocity = Random.insideUnitSphere *2;

        }

    }

1 个答案:

答案 0 :(得分:0)

你的问题是this.transform.rotation.z返回一个四元数值,而不是由欧拉角提出的旋转角度。看看四元数看起来是什么here。另请查看有关轮换的this documentation。对于实际角度,请尝试transform.rotation.eulerAngles