Unity3d 射弹只在玩家静止时产生

Unity3d 射弹只在玩家静止时产生,unity3d,unityscript,Unity3d,Unityscript,我有一个奇怪的问题,我似乎无法解决。我有一些代码可以生成子弹,并向玩家面对的方向发射子弹。当播放器静止不动时,一切正常,但当我将播放器设置为运动状态时,代码就停止调用。我已经把繁殖代码和移动代码放在下面了。有人能帮我解释一下吗 繁殖代码 子弹运动代码 播放器移动代码 函数更新() { 边界(); 变量控制器:CharacterController=GetComponent(CharacterController); 水平变量:float=Input.GetAxis(“水平”)*-速度; 变量深度

我有一个奇怪的问题,我似乎无法解决。我有一些代码可以生成子弹,并向玩家面对的方向发射子弹。当播放器静止不动时,一切正常,但当我将播放器设置为运动状态时,代码就停止调用。我已经把繁殖代码和移动代码放在下面了。有人能帮我解释一下吗

繁殖代码

子弹运动代码

播放器移动代码

函数更新()
{
边界();
变量控制器:CharacterController=GetComponent(CharacterController);
水平变量:float=Input.GetAxis(“水平”)*-速度;
变量深度:float=Input.GetAxis(“垂直”)*速度;
水平*=时间增量时间;
深度*=时间增量时间;
//yVel*=时间增量时间;
transform.position.z+=水平;
transform.position.x+=深度;
//Log(“Y速度:+yVel”);
//Log(“跳跃:+isJumping”);
//跳转控制
if(Input.GetKeyDown(“space”)&&isJumping==false)
{
//Log(“空格按下”);
isJumping=true;
}
如果(正在跳跃)
{
更新++;
如果(更新<10)
{
yVel+=baseVel;
}
否则如果(更新>10)
{
yVel-=重力;
}
transform.position.y+=yVel;
if(变换位置y<地面位置+播放高度)
{
transform.position.y=groundPos+playerHeight;
yVel=0;
isJumping=false;
更新=0;
}
}
if(transform.position.x>=29.3)
{
变换位置x=29.3;
}

else if(transform.position.x)Borders函数的作用是什么?另外,与角色相关的是bulletSpawn在哪里?是否有任何运动(下落、奔跑、跳跃)停止了繁殖?您发布的代码中没有太多可能干扰繁殖的内容,所以我猜问题出在其他地方。
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;
    }
}