第一章【萌新】关于Unity中2D物体移动


今天研究了研究Unity中2D物体的移动问题,大抵分为两类

一类是使用Transform.position, 强行修改物体位置,并根据Time.DeltaTime 进行渐进式移动。代码:

transform.position  +=  target.transform.position-transform.position * speedScale * Time.deltaTime;  // 非匀速运动

或者调用Unity库, MoveTowards

transform.position = Vector3.MoveTowards(transform.position, target.transform.position, speedScale * Time.deltaTime); //匀速运动

缺点是:可能导致人物穿模


另一类是使用刚体速度,代码:

 rb.velocity = (Vector2)(target.position - transform.position).normalized * speedScale * Time.deltaTime;  //匀速运动

刚体是处在Unity物理引擎之下的,所以并不会导致穿模。

缺点是normalized过后的vector距离很小,需要将speedScale调的很大

Leave a comment

Log in with itch.io to leave a comment.