求助:物件移动范围的问题

5 replies [最后一篇]
yabaga
User offline. Last seen 1 周 2 天 ago. Offline
注册用户
Joined: 08/05/2010
Points: 25

希望刚开始执行时物件会自动上升,y到一定的数值物件会下降,y下降到一定的数值又会上升
我的语法是这样写的,但因为他自动上升到一定的高度要下降时,它就会停在那里不动,试了很多写法还是试不出来

var speed = 0.1;
function Update () {
transform.position.y=transform.position.y + speed ;
if(transform.position.y >70){
down();
}
if(transform.position.y <60){
up();
}
}
function down(){
transform.position.y=transform.position.y - speed ;
}
function up(){
transform.position.y=transform.position.y + speed ;
}

请问要怎么写

 

yabaga
User offline. Last seen 1 周 2 天 ago. Offline
注册用户
Joined: 08/05/2010
Points: 25

问题已经解决了,谢谢uke大大指教,因为第一次接触unity,请问编成的基础知识有推荐的网站或书籍吗?

uke
User offline. Last seen 3 天 6 小时 ago. Offline
超级管理员
Joined: 09/07/2009
Points: 2499

还是多学习点编程的基础知识!

uke
User offline. Last seen 3 天 6 小时 ago. Offline
超级管理员
Joined: 09/07/2009
Points: 2499

呵呵,明白了,没细看,你要声明一布尔变量,根据此变量的两种状态来执行你的两个函数,到达临界值时,将变量状态反转即可!

yabaga
User offline. Last seen 1 周 2 天 ago. Offline
注册用户
Joined: 08/05/2010
Points: 25

不行耶,假如我座标是71,它下降到69.999就会不动没办法持续往下递减,是因为Update的关系吗?

uke
User offline. Last seen 3 天 6 小时 ago. Offline
超级管理员
Joined: 09/07/2009
Points: 2499

把transform.position.y=transform.position.y + speed ;这句去掉就行了吧!

应该写成这样:

function Update () {
if(transform.position.y >70){
down();
}
if(transform.position.y <60){
up();
}
}