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;
}
}