如何制作拉动对象脚本呢?

时间:2017-02-20 05:06:54

标签: c# unity5 pull

下面是我在c#中的Unity推送脚本。

 public float pushPower= 2.0f;

     void  OnControllerColliderHit (ControllerColliderHit hit)
     {
         Rigidbody body = hit.collider.attachedRigidbody;

         if (body == null || body.isKinematic) 
             return;

         if (hit.moveDirection.y < -0.3f) 
             return;

         if(hit.collider != null && hit.collider.gameObject.tag == "PullThis" 
         && Input.GetKeyDown(KeyCode.E))
         {    
             Vector3 pushDir = new Vector3 (hit.moveDirection.x, 0, hit.moveDirection.z); 
             body.velocity = pushDir * pushPower; 
         }
     }

起初我想,我所要做的就是按下一些键,然后通过在Vector 3 x和z中插入“ - ”来完成另一种推动方式,这是行不通的。我一直在关注其他教程和答案,但仍然无法弄清楚。

另外,还有另一个我正在关注拉动对象的教程,但那是2D游戏。我一直试图尽可能多地转换成3D组件,但我用

打了一个墙
     Physics2D.queriesStartInColliders = false;

在物理学中是否有类似的东西检查没有参数的光线/线条(没有Linecast)? (或检查方法)。

所以,如果你们可以帮助我:#1。基于推送脚本或#2的代码示例。检查光线/线的类似方法,如Physics2D.queriesStartInColliders = false;

非常感谢。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我通过修改Pick Up脚本并冻结刚体上的所有旋转来解决这个问题。绕道而行,我说。