我刚刚发布了我的第一个独立恐怖游戏,并且正在更新它。在我的游戏中,目标是绕过激活几个发电机以恢复力量和逃生。我想让我的游戏更加逼真,所以,我正在添加可以用来激活发电机的汽油罐。我需要一些帮助来创建一个脚本,允许玩家拾取气体罐并使用它们来激活发生器。这是我到目前为止所做的:
public class GasCanisters : MonoBehaviour
public GameObject Player;
public GameObject[] GasCanisters;
public AudioClip PickupSound;
void Update()
{
AudioSource.PlayClipAtPoint(PickupSound, transform.position);
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
if (hit.collider.CompareTag("Gas Canister"))
GameObject.Destroy(gameObject);
}
}
你可能会说,我是一个非常基本和糟糕的程序员。但无论如何,我真的很感激我能得到的所有帮助。
答案 0 :(得分:1)
void OnMouseOver()
{
if(Input.GetButtonDown)
{
transform.SetParent(yourPlayersHand.transform);
transform.localPosition = Vector3.Zero;
transform.localRotation = Quaterion.Identity;
}
}
这将附加'罐子给你的球员手。你可能想摆弄这个位置&方向让它看起来正确。
其次,您需要一些方法来识别容器,最简单的方法是添加tag。
接下来,向生成器添加类似的脚本以执行您想要的操作,例如:
void OnMouseOver()
{
if(Input.GetButtonDown)
{
if(yourPlayersHand.transform.GetChild(0).tag == "canister")
{
// your code for what happens
}
}
}