C# 使用';IEnumerator';一旦对象移动到摄像机外,立即重新定位对象';(s视野)
一旦游戏对象离开摄像机的视野,此代码应重新定位游戏对象。然而,C# 使用';IEnumerator';一旦对象移动到摄像机外,立即重新定位对象';(s视野),c#,unity3d,ienumerator,C#,Unity3d,Ienumerator,一旦游戏对象离开摄像机的视野,此代码应重新定位游戏对象。然而,游戏对象永远不会被重新定位 IEnumerator Reposition(NinjaStar ninjaStar) { bool onScreen = true; Renderer renderer = ninjaStar.gameObject.GetComponent<Renderer> (); yield return new WaitForSeconds (1); while (o
游戏对象
永远不会被重新定位
IEnumerator Reposition(NinjaStar ninjaStar) {
bool onScreen = true;
Renderer renderer = ninjaStar.gameObject.GetComponent<Renderer> ();
yield return new WaitForSeconds (1);
while (onScreen) {
if (!renderer.isVisible) {
ninjaStar.Initiate (0, 0, Vector3.zero); //this code never gets called
ninjaStar.transform.position = poolPosition; //this code never gets called
onScreen = false; //this code never gets called
}
yield return null;
}
}
IEnumerator重新定位(忍者星忍者星){
屏幕上的布尔=真;
渲染器Renderer=ninjaStar.gameObject.GetComponent();
返回新的WaitForSeconds(1);
while(屏幕上){
如果(!renderer.isVisible){
Initiate(0,0,Vector3.zero);//此代码从未被调用
ninjaStar.transform.position=poolPosition;//此代码从未被调用
onScreen=false;//此代码永远不会被调用
}
收益返回空;
}
}
文档说明:
在编辑器中运行时,场景视图摄影机也会使该值为真
因此,请尝试将您的项目构建到您首选的平台并在那里进行测试(例如构建windows并测试.exe)
或者,重新定位/旋转场景视图摄影机,使其看不到对象,并在编辑器中进行测试。非常感谢您锁定了它,但我认为unity会让iVisible以这种方式工作,这很奇怪……非常完美,很乐意提供帮助。那么你应该接受答案;)有时,如果你不看医生,你可能会遇到问题。