与地面上的 "dirt" 碰撞时减速玩家

Slow down player when colliding with "dirt" on ground

好的,所以,目前在我的游戏中,我有 5 或 6 个 "police cubes" 追逐玩家,并扣除生命值,直到玩家最终死亡。我的玩家还必须捡起收藏品才能到达终点线。我的播放器是一个滚动的球,有一条主路供球移动。这条路周围有泥土环境,我需要一种方法让滚动的球接触到它时减去速度。如果有人可以帮助我,将不胜感激,谢谢。

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class _PlayerController : MonoBehaviour {

public float speed = 75.0f;
public Text countText;
public Text winText;

private Rigidbody rb;
private int count;


void Start ()
{
    rb = GetComponent<Rigidbody>();
    count = 0;
    SetCountText ();
}

void FixedUpdate ()
{
    float moveHorizontal = Input.GetAxis ("Horizontal");
    float moveVertical = Input.GetAxis ("Vertical");

    Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);

    rb.AddForce (movement * speed);
}

void OnTriggerEnter(Collider other) 
{
    if (other.gameObject.CompareTag ("Pick Up")) {
        other.gameObject.SetActive (false);
        count = count + 1;
        SetCountText ();
    }
}


void SetCountText ()
{
    countText.text = "Count: " + count.ToString ();
    if (count >= 25) {  
        Application.LoadLevel (2); 

        }
    }
}

您可以对泥土应用 Physic Material 并为其指定动态摩擦值。你给它的值将取决于你想让泥土减慢玩家速度的程度,尝试将 0.5 作为起点。

从菜单栏中创建一个 Physic Material select Assets > Create > Physic Material。然后将 Physic Material 从 Project View 拖到场景中的 Collider 上。 (从链接页面复制粘贴)。