我正在统一进行3D篮球比赛。
它有一个分数和一个计时器。一段时间后,我的场景将加载并从头开始。每次扔球时,都必须产生它。
它有一个生成按钮和一个拍摄按钮。但是我不想使用生成按钮。所以我想自动产生球。
我该怎么办?我在下面给出我的生成按钮代码和抛出按钮代码。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SpawnButton: MonoBehaviour
{
public GameObject ball;
public GameObject BallPosition;
public void Spawn()
{
ball.transform.position = BallPosition.transform.position;
var ballPosition = ball.transform.position;
ball.GetComponent<Rigidbody>().useGravity = false;
ball.GetComponent<Rigidbody>().velocity = Vector3.zero;
ball.transform.position = ballPosition;
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ThrowButton: MonoBehaviour
{
static Animator anim;
public GameObject ball;
public float ballThrowingForce = 5f;
internal bool holdingBall;
void Start()
{
anim = GetComponent<Animator>();
ball.GetComponent<Rigidbody>().useGravity = false;
}
public void Throw()
{
anim.SetTrigger("isThrowing");
StartCoroutine(Test());
}
IEnumerator Test()
{
yield return new WaitForSeconds(1.5f);
ball.GetComponent<Rigidbody>().useGravity = true;
//ball.GetComponent<Rigidbody>().AddForce(transform.up * ballThrowingForce);
ball.GetComponent<Rigidbody>().AddForce(0, 380.0f, ballThrowingForce);
}
}
private class Spawner : MonoBehaviour
{
public GameObject prefab;
public GameObject Spawn() => Instantiate(prefab);
}
因此,您的投掷代码应产生一个球,如果您想销毁一个旧的球。
或者在完成第一个球的工作后,您可以销毁它(销毁(球))或将active设置为false-然后检查状态(是否存在(是否为空检查?)或gameObject.active == true)并因此实例化一个新的球(如果它是setactive(false),请不要忘记稍后销毁它)。