无法朝手的方向射击
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 脚本以获取更多信息。
我在 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 脚本以获取更多信息。