【问题标题】:Random movement attempt随机移动尝试
【发布时间】:2015-03-04 13:17:34
【问题描述】:

当玩家不在它的范围内时,我试图让我的熊随机行走。我希望它随机选择它在 y 轴上的旋转,然后将其向前移动,并在一段时间后再次随机切换旋转。

问题是我真的不知道如何给他分配随机轮换。 那我该怎么做呢?

我终于设法做到了,这是工作代码:

var timeToChangeDirection : float = 60;
private var angle : Vector3;

var damping : float = 6.0;

var controller : CharacterController;

function Update()
{
    distance = Vector3.Distance(target.position, transform.position);

    if(distance > aggroRange)
    {
        moveSpeed = 1;
        timeToChangeDirection -= 0.1;

        if (timeToChangeDirection <= 0) 
        {
            ChangeDirection();
        }

        controller.Move(transform.forward * Time.deltaTime);
        animation["Run"].speed = 0.25;
        animation.Play("Run");
    }

function ChangeDirection()
{
    angle = Vector3(transform.rotation.x, Random.Range(-359, 359), transform.rotation.y);
    transform.Rotate(angle);
    timeToChangeDirection = 60;
}

【问题讨论】:

  • 您的问题是什么?如何获得随机方向?
  • 是的。将编辑我的帖子以使其更清楚。

标签: random unity3d artificial-intelligence unityscript


【解决方案1】:

好的。毕竟我已经做到了。 如果有人感兴趣,这是代码:

var timeToChangeDirection : float = 60;
private var angle : Vector3;

var damping : float = 6.0;

var controller : CharacterController;

function Update()
{
    distance = Vector3.Distance(target.position, transform.position);

    if(distance > aggroRange)
    {
        moveSpeed = 1;
        timeToChangeDirection -= 0.1;

        if (timeToChangeDirection <= 0) 
        {
            ChangeDirection();
        }

        controller.Move(transform.forward * Time.deltaTime);
        animation["Run"].speed = 0.25;
        animation.Play("Run");
    }

function ChangeDirection()
{
    angle = Vector3(transform.rotation.x, Random.Range(-359, 359), transform.rotation.y);
    transform.Rotate(angle);
    timeToChangeDirection = 60;
}

【讨论】:

  • 你真的应该把你的答案浓缩到只需要解决你的问题。
  • 对不起。我在这里很新,我还不知道约定。感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
相关资源
最近更新 更多