作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实现一个带有平台和 OntriggerExit 的系统,该系统产生新平台。包含触发函数的对象是所述平台的子对象。即,我在每个平台中有 4 个触发器作为子级。
我正在尝试使用触发器对象的全局位置来实例化新平台,但它会根据当前的位置继续这样做。
例如,父(平台)位于 (0,0,0)。触发器,平台的子级,全局位于 (-15,0,0)。我尝试添加 (-35,0,0) 并在 (-35,0,0) 而不是 (-50,0,0) 处实例化。
我使用静态值执行此操作。我在 OnTriggerExit() 时获取触发器位置,然后在不同的脚本上使用它,如下所示:
public class TriggerExitN : MonoBehaviour
{
public delegate void ExitAction();
public static event ExitAction OnChunkExitedN;
public static Vector3 positionN;
private bool exited = false;
private void OnTriggerExit(Collider other)
{
Player player = other.GetComponent<Player>();
if (player != null)
{
if (!exited)
{
exited = true;
OnChunkExitedN();
positionN = gameObject.transform.position;
}
}
}
}
public class MapGenerator : MonoBehaviour
{
public GameObject[] mapprefabs;
public GameObject[] startprefabs;
private List<GameObject> platformslist = new List<GameObject>();
public Vector3 spawnOrigin;
private Vector3 spawnPosition;
// Start is called before the first frame update
void Start()
{
platformslist.Add(startprefabs[0]);
}
void OnEnable()
{
TriggerExitN.OnChunkExitedN += PickAndSpawnN;
}
private void OnDisable()
{
TriggerExitN.OnChunkExitedN -= PickAndSpawnN;
}
void PickAndSpawnN()
{
spawnPosition = TriggerExitN.positionN + new Vector3(-35f, 0, 0f);
foreach (GameObject platform in platformslist)
if(platform.transform.position == spawnPosition)
{
return;
}
else
{
continue;
}
GameObject objectFromChunk = mapprefabs[Random.Range(0, mapprefabs.Length)];
Instantiate(objectFromChunk, spawnPosition + spawnOrigin, Quaternion.identity);
platformslist.Add(objectFromChunk);
Debug.Log(TriggerExitN.positionN);
}
最佳答案
OnChunkExitedN();
positionN = gameObject.transform.position;
positionN = gameObject.transform.position;
OnChunkExitedN();
关于c# - 当在第二个脚本上调用时,Unity 中的静态值 "lost",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62183522/
我是一名优秀的程序员,十分优秀!