如何在鼠标指针角度拍摄?

时间:2014-12-03 11:27:49

标签: c# unity3d

我有一个用子弹向敌人射击的子弹,子弹以正确的角度向右移动,但我的子弹没有指向那个角度,子弹无法改变它的角度。改变它?,它不仅应该以那个角度移动而且还指向它,目前我正在将它转换到屏幕右侧。敌人正在从右边产生。我的代码是移动和转换,任何帮助感谢名单, 这是方向和射击率的代码

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

1 个答案:

答案 0 :(得分:0)

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

相关问题