Как переместить пистолет назад, когда рядом со стеной в единстве? - PullRequest
0 голосов
/ 13 октября 2018

Я делаю FPS-игру в единстве.Я написал скрипт для пистолета, чтобы он двигался назад, когда он находится близко к объекту, а также для включения прицела.Я использовал анимацию для оружия, чтобы двигаться назад (gunBackward) и для включения прицела (Scoper), а также для обычного положения оружия (idleGun).Но теперь в единстве, когда я играю в игру, я не могу включить прицел, когда Рэй попадает в коллайдер. Пушка начинает вибрировать.Я могу включить прицел только тогда, когда смотрю на небо.

public float distance;
public GameObject origin;
public bool scop;
public Animator anim;
public GameObject CrossHair;
public bool scoped;

// Use this for initialization
void Start () {
    anim = GetComponent<Animator>();
}

// Update is called once per frame
void Update () {
    if (Input.GetButtonDown ("Fire2")) {
        scoped = true;
        scop = false;
    } 
    if (Input.GetButtonUp ("Fire2"))
    {
        scoped = false;
        scop = true;
    }
    if (scoped == true) {
        anim.Play ("Scoper");
    }
        if (scoped == false)
    {
        anim.Play("idleGun");

    }

    Vector3 cartPos = new Vector3 (0.0f, 0.0f, 0.0f);
    RaycastHit hit;

    if (Physics.Raycast (cartPos+origin.transform.position, transform.TransformDirection (Vector3.forward), out hit)) 
    {
        distance = hit.distance;
    }
    if (hit.transform == null) {
        distance = 2.1f;
        return;
    }
    if (distance < 2) 
    {
        anim.Play ("gunBackward");
    } 
    if (distance > 2)
    {
        anim.Play("idleGun");
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...