与地面上的"dirt"相撞时减慢玩家的速度



好的,所以,目前在我的游戏中,我有5或6个"警察立方体"来追逐玩家,并扣除生命值,直到最终玩家死亡。我的玩家还必须捡起收藏品才能到达终点线。我的球员是一个滚动的球,有一条主干道可以让球在上面行进。这条路周围有泥土环境,一旦滚球接触到它,我需要一种方法来扣除速度。如果有人能帮助我解决这个问题,将不胜感激,谢谢。

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); 
        }
    }
}

您可以将物理材质应用于污垢并为其指定动态摩擦值。你给它的值将取决于你希望泥土减慢玩家的速度,尝试 0.5 作为起点。

要创建物理材质,请从菜单栏中选择资产>创建>物理材质。然后将物理材质从"项目视图"拖动到场景中的碰撞体上。(从链接页面复制粘贴)。

相关内容

  • 没有找到相关文章