【发布时间】:2019-05-16 17:22:32
【问题描述】:
我正在使用 Unity 中的 Raycast 制作射击游戏。我有一个游戏对象,它是一个立方体(我的游戏的地面)。可以使用Destroy() 方法销毁该立方体。如何使它坚不可摧,即使在使用Destroy() 方法后也不会被破坏?
到目前为止,这是我的 FPS 枪脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Gun : MonoBehaviour
{
public float damage = 20f;
public float range = 150f;
//public GameObject ground;
public Camera fpsCamera;
void Start()
{
//DontDestroyOnLoad(ground);
}
void Update()
{
if (Input.GetButtonDown("Fire1")) {
Shoot();
}
}
void Shoot()
{
RaycastHit hitObject;
if (Physics.Raycast(fpsCamera.transform.position, fpsCamera.transform.forward, out hitObject, range) && hitObject.transform.name != "Ground") {
Destroy(hitObject.transform.gameObject);
}
}
【问题讨论】:
-
这可以通过不使用
Destroy()方法来完成 -
您也可以使用 DontDestroyOnLoad 来标记在加载新场景时不要销毁的对象。 docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html
-
我正在使用 Raycast 制作射击游戏,因此与 Raycast 碰撞的对象被销毁。
-
可以添加破坏对象的部分代码吗?
-
将脚本添加到问题中
标签: c# visual-studio unity3d