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