如何在地形上向游戏对象添加随机x,0,z移动

本文关键字:添加 随机 移动 对象 游戏 | 更新日期: 2023-09-27 18:23:58

我对UnityScript和C#没有经验,如果能研究一个解决方案,我将不胜感激。

我想要的行为是拾取在地形上以随机方向移动,如果遇到刚体或静态对象,则会改变方向。

我尝试了以下脚本"Wander.cs":http://wiki.unity3d.com/index.php/Wander

然而,当播放时,脚本会打开游戏对象,我无法纠正这一点。此外,物体往往会聚集在角落里,而不是离开。

如何在地形上向游戏对象添加随机x,0,z移动

据我所知,有两种可能性。

我没有尝试,但希望它能有所帮助。

1-借助圆的参数方程,即

x=v.t.cos(θ)
y=v.t.sin(θ)

在您的情况下:

x=v.t.cos(θ)+x距离
z=v.t.sin(θ)+z距离

其中xDistancezDistance身体的简单初始位置值。这些值在开始移动后不会更改(在移动期间,直到发生碰撞)。

在Update()中,将这些方程应用于您的身体,使其具有常数vtheta,并随时间增加t(t++或t+=0.1f)。当实体碰撞时,只保留当前平移(位置)值。并再次开始移动,这次将xDistancezDistance值更改为当前值,但仅更改一次。

2-在i之间的帮助下。这是一个免费的动画脚本在资产商店可用

你可以使用iTween.MoveTo将身体移动到任何给定的方向(你也可以指定一个随机方向。)。在碰撞时停止并重新开始移动。