代码之家  ›  专栏  ›  技术社区  ›  Amul Bhatia

无法向手的方向射击

  •  0
  • Amul Bhatia  · 技术社区  · 10 年前

    我在blender中设计了一个模型,并将其导入Unity中,在其上应用了ThirdPersonController、ThirdPersonCharacter、Third PersonUserControl,并按照指导原则制作了动画,现在我已经创建了一个射击子弹的脚本,并将它连接到装配好的手/枪上。但每当我点击“开火1”,子弹就会朝另一个方向射出。。

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

    视频有助于更好地理解- http://tinypic.com/r/34yohli/9

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

    拍摄.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);
    
        }
    }
    

    鼠标移动.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);
        }
    }
    
    1 回复  |  直到 10 年前
        1
  •  0
  •   nikigmi    10 年前

    要检测鼠标的移动,应使用输入。GetAxis(“鼠标X”)或输入。GetAxis(“鼠标Y”)。如果希望摄影机随角色移动,可以将其设置为角色的子对象。您可以查看MouseLook脚本以了解更多信息。