无法朝手的方向射击

Not able to Shoot in the direction of the hand

我在 blender 中设计了一个模型并导入到 Unity 中,并在其上应用了 ThirdPersonController、ThirdPersonCharacter、ThirdPersonUserControl,并按照指南制作了动画,现在我已经创建了一个用于射击子弹的脚本并将其附加到装备 hand/gun。但是每当我点击 "Fire1" 时,子弹就会朝另一个方向射击..

我想当我移动鼠标时,手应该朝鼠标的方向移动 + body 应该朝鼠标的方向旋转(如果在背面),当我左键单击时,它应该朝鼠标方向发射一颗子弹(一次一颗)。

为了更好地理解视频 - http://tinypic.com/r/34yohli/9

我尝试了一个脚本,但它没有按照我想要的方式运行。

Shoot.js

#pragma strict   var projectile : GameObject;
var fireRate = 0.5;
private var nextFire = 0.0;
var shotDelay = .5;

function Update ()
{
    if (Input.GetButton ("Fire1") && Time.time > nextFire) 
    {
        nextFire = Time.time + fireRate;
        var clone = Instantiate (projectile, transform.position, transform.rotation);

    }
}

MouseMovement.cs

using UnityEngine;
using System.Collections;

public class MouseMovement : MonoBehaviour
{

    public float speed = 1.5f;
    private Vector3 target;

    void Start()
    {
        target = transform.position;
    }

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            target.x = transform.position.x;
        }
        transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);
    }
}

要检测鼠标的移动,您应该使用 Input.GetAxis("Mouse X") 或 Input.GetAxis("Mouse Y")。如果您希望相机随角色一起移动,您可以将其设置为角色的子对象。您可以查看 MouseLook 脚本以获取更多信息。