2014-12-03 49 views
1

我有一个玩家正在用子弹向敌人射击,子弹向右移动,角度正确,但是我的子弹不是指向那个角度,子弹无法改变角度。改变它,它不仅应该以那个角度移动,而且指向它,目前我正在将它变成屏幕的右边,敌人从右边产生。这里是我的移动和变换代码,任何帮助thanx , 这是方向的代码,以及用于拍摄速率如何在鼠标指针角度拍摄?

using UnityEngine; 
using System.Collections; 

public class WeaponScript : MonoBehaviour 
{ 

public Transform shotPrefab; 

public float shootingRate = 0.25f; 

private float shootCooldown; 

void Start() 
{ 
    shootCooldown = 0f; 
} 

void Update() 
{ 
    if (shootCooldown > 0) 
    { 
     shootCooldown -= Time.deltaTime; 
    } 
} 

public void Attack(bool isEnemy) 
{ 
    if (CanAttack) 
    { 
     shootCooldown = shootingRate; 

     // Create a new shot 
     var shotTransform = Instantiate(shotPrefab) as Transform; 

     // Assign position 
     shotTransform.position = transform.position; 

     // The is enemy property 
     ShotScript shot = shotTransform.gameObject.GetComponent<ShotScript>(); 
     if (shot != null) 
     { 
      shot.isEnemyShot = isEnemy; 
     } 

     // Make the weapon shot always towards it 
     MoveScript move = shotTransform.gameObject.GetComponent<MoveScript>(); 
     if (move != null) 
     { 
      move.direction = this.transform.right; 
     } 
    } 
} 

public bool CanAttack 
{ 
    get 
    { 
     return shootCooldown <= 0f; 
    } 
} 
} 

这是用于移动的代码

using UnityEngine; 
using System.Collections; 

public class MoveScript : MonoBehaviour { 

public Vector2 speed = new Vector2(10,10); 

public Vector2 direction = new Vector2(1,0); 

void Update() { 

    Vector3 movement = new Vector3 (speed.x * direction.x, speed.y * direction.y, 0); 
    movement *= Time.deltaTime; 
    transform.Translate(movement); 
} 
} 

回答

0

使用transform.LookAt(transform.position + direction)会立即将您的对象指向指定的方向。