unity碰撞后无法计数
using System.Collections;
using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic;
using UnityEngine;
public class playerControl : MonoBehaviour
{
private Rigidbody rb;
private int count;
public float speed;
public Text countText;
public Text winText;
void Start()
{
count = 0;
rb = GetComponent<Rigidbody>();
SetCountText();
winText.text = "";
}
void FixedUpdate()
{
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVetical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVetical);
rb.AddForce(movement * speed );
}
void OnCollisionEnter(Collision other)
{
if (other.gameObject.name == "pickup") //这里用tag也行
{
count = count + 1;
countText.text = "Count:" + count.ToString();
Destroy(other.gameObject);
}
}
void SetCountText()
{
countText.text = "Count:" + count.ToString();
if (count >= 12)
{
winText.text = "You win!";
}
}
}
player 控制代码如上
每次碰撞时,destroy会被触发,但是countText内的count = count + 1不会
计数器始终显示0.
因为每个enemy都会有一个score,不会累加