【发布时间】:2017-08-17 20:36:15
【问题描述】:
我已经为大型金库门编写了门脚本。 我的问题如下:如果我将脚本分配给多个门 在场景中,所有门同时打开和关闭 其中一个被触动了。
using UnityEngine;
using System.Collections;
public class BigDoorScript : MonoBehaviour
{
private bool doorOpen = false;
private Ray ray;
private RaycastHit hit;
private float distance = 5.0f;
public GameObject door;
private void Update()
{
if (Input.GetKeyDown("e"))
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit, distance))
{
if (!doorOpen)
{
door.transform.Translate(new Vector3(0.0f, 0.0f, 4.0f));
doorOpen = true;
}
else
{
door.transform.Translate(new Vector3(0.0f, 0.0f, -4.0f));
doorOpen = false;
}
}
}
}
}
【问题讨论】:
-
如何设置
door变量? -
尝试将门设为私有而不是公开。这可以解决同时激活所有门的问题,因为如果它是私有的,则只有该类的成员才能访问它。再说一次,我还没有看到您其余代码的结构,但值得一试。