与地面上的 "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 上。 (从链接页面复制粘贴)。
好的,所以,目前在我的游戏中,我有 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 上。 (从链接页面复制粘贴)。