对象在试图从屏幕边缘反弹时卡住,我做错了吗?公共类AsteroidMovement:MonoBehaviour{publicVector2speed;公共Vector2方向;私有Vector2机芯;私有Vector3TopScreenBound;私有Vector3BottomScreenBound;//使用它进行初始化voidStart(){TopScreenBound=Camera.main.ViewportToWorld(1f,0f));BottomScreenBound=Camera.main.ViewportToWorldPoint(newVector3(0f,0f,0f));}//Update每帧调用一次voidUpdate(){if(gameObject.transform.position.y>=TopScreenBound.y){direction.y*=-1;}if(gameObject.transform.position.y<=BottomScreenBound.y){direction.y*=-1;}movement=newVector2(speed.x*direction.x,speed.y*direction.y);}voidFixedUpdate(){rigidbody2D.velocity=movement;我试图让我的游戏中的小行星从我的屏幕边缘反弹,我让它正常工作,但经过几次反弹后,小行星/物体“卡在”墙上并出现故障游乐区。我错了吗?我看不出它在代码中的什么位置使小行星在几次反弹后卡住。提前致谢:)你必须修复物体在屏幕内弹跳的位置,如果你的物体已经离开屏幕并且它不适合下一帧的屏幕空间,那么你的物体将无限地改变它的方向直到它进入或离开屏幕。改变这个:if(gameObject.transform.position.y>=TopScreenBound.y){direction.y*=-1;}if(gameObject.transform.position.yTothis:以上是C#学习教程:当试图从屏幕上移动时边缘反弹,物体会卡住。我做错了吗?所有内容共享,如果对大家有用,需要详细了解C#学习教程,希望大家多多关注---if(gameObject.transform.position.y>=TopScreenBound.y){gameObject.transform.position.y=TopScreenBound.y;direction.y*=-1;}if(gameObject.transform.position.y本文采集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除,如需转载请注明出处:
