当玩家静止时,弹丸只会产生

时间:2014-03-12 05:37:18

标签: unity3d unityscript

我有一个奇怪的问题,我似乎无法解决。我有一些代码可以生成子弹并按照玩家面向的方向向它们发射。这一切都很好,而玩家仍然没有移动,但一旦我将玩家设置为动态,代码就不再被调用。我把下面的产生代码和移动代码放在了下面。有谁能够为我阐明这一点?

产卵代码

var clone:GameObject;

if(Input.GetKeyDown(KeyCode.Mouse0))
{
    Debug.Log("Fire");
    clone = Instantiate(projectile, bulletSpawn.position, bulletSpawn.rotation);
}

子弹运动代码

function Start ()
{
    speed = 10;
    startTime = Time.time;
    player = GameObject.FindWithTag("Player");
    bulletRot = player.rigidbody.rotation;
}

function Update ()
{
    //Debug.Log("Start: " + startTime + "      Live: " + liveTime);
    rigidbody.rotation = bulletRot;
    transform.Translate(Vector3.forward * Time.deltaTime * speed);
    liveTime = Time.time - startTime;
    if(liveTime > maxLive)
    {
        DestroyBullet(gameObject);
    }
}

玩家移动代码

function Update ()
{
    Borders();

    var controller : CharacterController = GetComponent(CharacterController);

    var horizontal : float = Input.GetAxis("Horizontal") * -speed;
    var depth : float = Input.GetAxis("Vertical") * speed;

    horizontal *= Time.deltaTime;
    depth *= Time.deltaTime;
    //yVel *= Time.deltaTime;

    transform.position.z += horizontal;
    transform.position.x += depth;

    //Debug.Log("Y Velocity: " + yVel);
    //Debug.Log("Jumping: " + isJumping);

    //Jump control
    if(Input.GetKeyDown("space") && isJumping == false)
    {
        //Debug.Log("Space Pressed");
        isJumping = true;
    }

    if(isJumping)
    {
        updates++;

        if(updates < 10)
        {
            yVel += baseVel;
        }

        else if(updates > 10)
        {
            yVel -= gravity;
        }

        transform.position.y += yVel;

        if(transform.position.y < groundPos + playerHeight)
        {
            transform.position.y = groundPos + playerHeight;
            yVel = 0;
            isJumping = false;
            updates = 0;
        }
    }

    if(transform.position.x >= 29.3)
    {
        transform.position.x = 29.3;
    }

    else if(transform.position.x <= 26.3)
    {
        transform.position.x = 26.3;
    }
}

0 个答案:

没有答案