c# - Vector3.MoveTowards 没有做它的事
问题描述
当我使用 Vector3.MoveTowards 方法时,Plank 无法移动。我不完全确定为什么。有好心人来看看吗?
public class BrickMoveVErtical : MonoBehaviour
{
public Vector3 positionOne, positiontwo, nextposition;
public Transform plankTranform;
public Transform positionBTransform;
public float speed;
void Start ()
{
positionOne = plankTranform.localPosition;
positiontwo = positionBTransform.localPosition;
nextposition = positiontwo;
}
void Update ()
{
move();
}
private void move()
{
plankTranform.localPosition = Vector3.MoveTowards(positionOne,nextposition,Time.deltaTime*speed);
if(Vector3.Distance(plankTranform.localPosition,nextposition)<0.1)
changeMovementPlank();
}
void changeMovementPlank()
{
nextposition = nextposition != positionOne ? positionOne : positiontwo;
}
}
解决方案
您应该使用当前位置作为current
参数:
plankTranform.localPosition = Vector3.MoveTowards(plankTranform.localPosition, nextposition,Time.deltaTime*speed);
^^^^^^^^^^^^^^^^^^^^^^^^^^^
推荐阅读
- vulkan - 隐式子通道依赖和障碍
- node.js - 如何在注册控制器中添加条件以检查电子邮件是否已存在?
- android - 为什么 TextView 变量需要在循环内
- c# - 如何根据对象的使用有条件地保持对象属性“必需”?
- node.js - Node.js 发布请求返回 404
- isabelle - 有没有学术论文的伊莎贝尔来源的例子?
- java - 在我的程序“AWT-EventQueue-0”java.lang.NullPointerException 中按下按钮时出现此错误
- php - Laravel sortByDesc 和 Paginate 关系
- java - 如何根据显着光值使振动不同?
- rest - GraphQL 如何比 REST 更高效?