给Ground加一个层并上锁
防止选择灯光或者别的时候将ground一起选上。
先add一个然后选择ground层。接下来在layers处进行上锁。
先改变碰撞,可持续检测。
我没有加第一张图的步骤,加上我的障碍物会到ground上跳动一下。
Continuous:
更加精细的碰撞,很耗费资源。这种状态下,当这个刚体与其他普通刚体碰撞时,仍将使用Discrete的碰撞检测,但是与没有刚体的Mesh Collider碰撞就会连续检测了。
减少固定时间长度:
增加ui组件
我们在hierarchy里添加一个text就会出现下图所示:
可以改变大小和型号,字体比较多,但是你第一次看见的只有一个,那我们就要添加进来字体。
可以在电脑里增加字体
选中字体然后拖进去,那我们在font处就可以改变自己想要的字体了。
代码
using UnityEngine;
using UnityEngine.UI;
public class PlayerMovement : MonoBehaviour
{
public Rigidbody rb;
public float forwardForce = 2000f;
public float sideWaysForce = 500f;
bool leftPressed;//布尔值判断是否
bool rightPressed;
public Text score;//得分
void Start()
{
// rb.AddForce(0, 200, 500);
//rb.useGravity = false;
}
void Update()//每帧都运行,输入部分放置在这里
{
leftPressed = Input.GetKey("a");
rightPressed= Input.GetKey("d");
score.text = transform.position.z.ToString("0");//使得计数只有一位
}
private void FixedUpdate()//物理类型
{
rb.AddForce(0, 0, forwardForce * Time.deltaTime);//均衡不同电脑帧率,forwardForce控制前进速度
if (Input.GetKey("d"))
{
rb.AddForce(sideWaysForce * Time.deltaTime, 0, 0,ForceMode.VelocityChange);//siderWaysForce控制左右速度,可以在面板上改变。
}
if (Input.GetKey("a"))
{
rb.AddForce(-sideWaysForce * Time.deltaTime, 0, 0,ForceMode.VelocityChange);
}
}
private void OnCollisionEnter(Collision collision)
{
//Debug.Log("We hit Something");
//判断条件if
if (collision.gameObject.tag == "Obstacle")
{
//停止
this.enabled = false;//类让他停下,禁止
rb.isKinematic = true;//碰到障碍物时候停止,可代表角色的死亡
Time.timeScale = 0;//时间停止
// rb.Sleep();//不可以,使用这个x轴还在动
}
}
}
在面板处将text拖进去
ok,这个主要就是添加了ui
这个主要就是将计数只有一位,如果我们改成0.0,那计数就会出现两位数字。
score.text = transform.position.z.ToString("0");