sol*_*365 2 c# unity-game-engine
我希望我的球体从一个位置跳到另一个位置,但不希望它随后平移。我不知道该怎么做。这是我的代码:
void Update()
{
if (!thrown && ((Input.touchCount > 0
&& Input.GetTouch(0).phase == TouchPhase.Ended)
|| Input.GetMouseButtonDown(0)))
{
rb.isKinematic = false;
rb.AddForce(new Vector3(0.0f, 15.0f, 5.0f) );
thrown = true;
}
}
Run Code Online (Sandbox Code Playgroud)
有很多方法可以让 Object 在碰撞后立即停止。我会给你两种方法:
方法一:
设置速度的Rigidbody来0,当你检测科里森。
如果对象也在旋转,则将 设置angularVelocity为0。
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Player"))
{
Rigidbody rbdy = collision.gameObject.GetComponent<Rigidbody>();
//Stop Moving/Translating
rbdy.velocity = Vector3.zero;
//Stop rotating
rbdy.angularVelocity = Vector3.zero;
}
}
Run Code Online (Sandbox Code Playgroud)
方法二:
使用物理材质来控制碰撞过程中的摩擦量。
转到资产>创建>物理材料
将弹性更改为0。
将动态和静态摩擦更改为等于或大于 的值1。
然后将其连接到Material您的插槽Collider。
| 归档时间: |
|
| 查看次数: |
6996 次 |
| 最近记录: |