【发布时间】:2016-04-09 00:43:43
【问题描述】:
我有两个游戏对象,一个是我的“英雄”,另一个是带有导航网格的敌人,我已经设法使健康系统没有问题,但知道当剑与敌人相撞时,似乎刚体不起作用或其他什么,因为我尝试了一些我在互联网上找到的解决方案,但似乎没有任何效果。我希望一旦剑与敌人相撞,敌人就会被推开。我试过这个:
public void takeDamage() {
// revert rigidbody velocity:
rigidbody.velocity *= -1;
}
另一个代码
float distance = 25.0f;
if (player.position.x < enemyPosition.position.x) {
Vector3 new_position = new Vector3 (distance, enemyPosition.position.y, enemyPosition.position.z);
rb.position = new_position;
}
谢谢
编辑:
好像用这段代码解决了:
Vector3 new_position = new Vector3 (3.0f, 0f, 0f) + rb.transform.position;
rb.transform.position = new_position;
【问题讨论】:
-
当你实现这些例子时究竟会发生什么?
-
什么都没有,健康变量应该会减少,但没有其他任何事情发生
-
你的
Update()方法中是否有什么东西可以让敌人恢复原来的速度? -
是的,来自 NavMesh 的 SetDestination 方法。但是当它与剑碰撞时,物体甚至都没有移动。
-
你的刚体是怎么得到的?与
GetComponent?您是否尝试将值设置得非常高?像 10000 左右以确保它做某事?