Разлёт пуль raycast'om.

Программирование на Юнити.

Разлёт пуль raycast'om.

Сообщение KiR_Ka 09 дек 2018, 16:59

Здравствуйте! Подскажите пожалуйста, как реализовать разброс пуль, если стрельбу я создал через Рейкаст?
Просто я не очень понимаю как это можно реализовать!
Вот код стрельбы:
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RifleB : MonoBehaviour {

    private Camera _camera;

    public GameObject body;
    private RecoilHorizontal recoilHorizontal;
    private RecoilVertical recoilVertical;

    void Awake()
    {
        recoilHorizontal = body.GetComponent<RecoilHorizontal>();
        recoilVertical = GetComponent<RecoilVertical>();

        _camera = GetComponent<Camera>();

        Cursor.lockState = CursorLockMode.Locked;
        Cursor.visible = false;
    }

    // Use this for initialization
    void Start() {

    }

    // Update is called once per frame
    void Update() {
        if (Input.GetMouseButtonDown(0))
        {
            Shoot();
        }

    }
    public void Shoot()
    {
        Vector3 point = new Vector3(
        _camera.pixelWidth / 2, _camera.pixelHeight / 2, 0);
        Ray ray = _camera.ScreenPointToRay(point);
        RaycastHit hit;
        recoilHorizontal.recoilHor();
        recoilVertical.recoilVer();
        if (Physics.Raycast(ray, out hit))
        {
            GameObject hitObject = hit.transform.gameObject;
            ReactiveTarget target = hitObject.GetComponent<ReactiveTarget>();
            if (target != null)
            {
                target.ReactToHit();
            }
        }
    }
}
 
KiR_Ka
UNец
 
Сообщения: 13
Зарегистрирован: 07 дек 2018, 00:55
Откуда: Тюмень
Skype: Kote Kotin

Re: Разлёт пуль raycast'om.

Сообщение Xtir 09 дек 2018, 17:48

Я так понял, у тебя стрельба реализована просто рейкастом, без пуль?
Если так, то я бы просто переменной point добавил бы немного рандома.
Xtir
UNIверсал
 
Сообщения: 498
Зарегистрирован: 21 окт 2016, 00:37

Re: Разлёт пуль raycast'om.

Сообщение KiR_Ka 09 дек 2018, 18:19

Xtir писал(а):Я так понял, у тебя стрельба реализована просто рейкастом, без пуль?
Если так, то я бы просто переменной point добавил бы немного рандома.

Покажите, как бы вы это сделали.
KiR_Ka
UNец
 
Сообщения: 13
Зарегистрирован: 07 дек 2018, 00:55
Откуда: Тюмень
Skype: Kote Kotin

Re: Разлёт пуль raycast'om.

Сообщение 1max1 09 дек 2018, 18:23

Синтаксис:
Используется csharp
Vector3 point = new Vector3( _camera.pixelWidth / 2, _camera.pixelHeight / 2, 0);
point.x += Random.Range(-5, 5);
point.y += Random.Range(-5, 5);
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Разлёт пуль raycast'om.

Сообщение KiR_Ka 09 дек 2018, 18:53

1max1 писал(а):
Синтаксис:
Используется csharp
Vector3 point = new Vector3( _camera.pixelWidth / 2, _camera.pixelHeight / 2, 0);
point.x += Random.Range(-5, 5);
point.y += Random.Range(-5, 5);

Всё равно не работает.
KiR_Ka
UNец
 
Сообщения: 13
Зарегистрирован: 07 дек 2018, 00:55
Откуда: Тюмень
Skype: Kote Kotin

Re: Разлёт пуль raycast'om.

Сообщение KiR_Ka 09 дек 2018, 18:58

Xtir писал(а):Я так понял, у тебя стрельба реализована просто рейкастом, без пуль?
Если так, то я бы просто переменной point добавил бы немного рандома.

А как бы вы это сделали? напишите пример пожалуйста!
KiR_Ka
UNец
 
Сообщения: 13
Зарегистрирован: 07 дек 2018, 00:55
Откуда: Тюмень
Skype: Kote Kotin

Re: Разлёт пуль raycast'om.

Сообщение KanycTa 09 дек 2018, 18:59

1. Создай GameObject который будет origin'ом твоего рейкаста
2. При стрельбе изменяешь угол этого рейкаста и возвращаешь в исходную позицию через Update
Аватара пользователя
KanycTa
UNIт
 
Сообщения: 107
Зарегистрирован: 25 июл 2018, 18:41
Откуда: г. Ульяновск
  • Сайт

Re: Разлёт пуль raycast'om.

Сообщение Ziza 09 дек 2018, 19:08

KiR_Ka писал(а):
1max1 писал(а):
Синтаксис:
Используется csharp
Vector3 point = new Vector3( _camera.pixelWidth / 2, _camera.pixelHeight / 2, 0);
point.x += Random.Range(-5, 5);
point.y += Random.Range(-5, 5);

Всё равно не работает.

Даже интересно, а как вы определили, что не работает? Такого не может быть. Увеличивайте число, если разлет нужен больше.
Это конечно не совсем разлет, но если смотреть на то, что вы и стреляете не в точку - сойдет)
Аватара пользователя
Ziza
UNIт
 
Сообщения: 81
Зарегистрирован: 02 ноя 2018, 23:07

Re: Разлёт пуль raycast'om.

Сообщение Xtir 09 дек 2018, 19:29

KiR_Ka писал(а):
Xtir писал(а):Я так понял, у тебя стрельба реализована просто рейкастом, без пуль?
Если так, то я бы просто переменной point добавил бы немного рандома.

А как бы вы это сделали? напишите пример пожалуйста!

Я бы так же сделал как в примере выше ))))
Xtir
UNIверсал
 
Сообщения: 498
Зарегистрирован: 21 окт 2016, 00:37

Re: Разлёт пуль raycast'om.

Сообщение KiR_Ka 09 дек 2018, 19:56

Я уже решил проблему,
спасибо большое! [V]
KiR_Ka
UNец
 
Сообщения: 13
Зарегистрирован: 07 дек 2018, 00:55
Откуда: Тюмень
Skype: Kote Kotin


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6