1 / 1 / 0
Регистрация: 07.10.2019
Сообщений: 111
1

Дистанция стрельбы в TDS игре на unity2D (вид сверху)

29.11.2019, 19:18. Показов 1953. Ответов 1
Метки нет (Все метки)

Я хочу сделать так, чтобы когда игрок приближался на определенную дистанцию к врагу, то он начинал стрелять. Правда незнаю как это реализовать. Буду очень благодарен если поможете.

Добавлено через 11 минут
Все решил проблему)
если че вот код;
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class II_soliders_enemy : MonoBehaviour
{
    AudioSource audioSource;
    public Transform firePoint;
    public float bulletForce = 30f;
    public GameObject bulletPrefab;
    public Rigidbody2D rb;
    public float speed;
    private Transform target;
    public float timeBtwShots;
    public float startTimeBtwShots;
    public AudioClip shootClip;
    int hp = 8; 
 
 
    // Start is called before the first frame update
    void Start()
    {
        audioSource = GetComponent<AudioSource>();
        target = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();
        timeBtwShots = startTimeBtwShots;
    }
 
    // Update is called once per frame
 
    void FixedUpdate()
    {
        var dir = target.position - transform.position;
        var euler = transform.eulerAngles;
        euler.z = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
        euler.z = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg - 90.0f;
        transform.eulerAngles = euler;
    }
    void Update()
    {
        if(Vector2.Distance(transform.position, target.position) < 10)
        {
            if (timeBtwShots <= 0 )
            {
                Shoot();
                timeBtwShots = startTimeBtwShots;
                audioSource.PlayOneShot(shootClip);
            }
            else 
            {
                timeBtwShots -= Time.deltaTime;
            }
        }
 
    }
 
 
    void OnCollisionEnter2D(Collision2D enemy)
    {
        if(enemy.gameObject.tag == "bullet")
        {
            hp--;
        }
        if(hp == 0)
        {
            Destroy(gameObject);
        }
 
    }
    void Shoot()
    {
        GameObject bullet = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
        Rigidbody2D rb = bullet.GetComponent<Rigidbody2D>();
        rb.AddForce(firePoint.up * bulletForce, ForceMode2D.Impulse);
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2019, 19:18
Ответы с готовыми решениями:

Проблема стрельбы врагов через стены по игроку в TDS Unity2D (игра с видом сверху)
Здравствуйте уважаемые знатоки). У меня враги стреляют в меня через стены, а мне этого не надо. Я...

Вспышка после выстрела в TDS игре на Unity2D (игра с видом сверху)
Я хочу сделать вспышку после выстрела в игре. Но не знаю как это реализовать и не знаю где брать...

Наведения врага на игрока оружием в TDS ( игра с видом сверху) в Unity2D
Я хочу сделать чтобы враг наводился на игрока за которого я управляю и начинал стрелять! Но не знаю...

Свечение объекта в TDS игре на Unity2D
Я хочу сделать свечение объекта (Glow), но не знаю как это сделать! Есть ассет один в юнити MK...

1
104 / 77 / 36
Регистрация: 13.01.2016
Сообщений: 393
29.11.2019, 19:28 2
Лучший ответ Сообщение было отмечено Asort как решение

Решение

C#
1
2
3
4
5
6
7
public float distance; //Пороговое значение дистанции, после которой начинаем стрелять
public GameObject player; //Объект игрока
private void FixedUpdate()
{
if(Vector3.Distance(transform.position, player.transform.position) <= distance) //Проверяем дистанцию между объектом, на котором висит скрипт (врагом) и игроком
// тут стреляем
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2019, 19:28

Подсветка выстрела в TDS игре на Unity2D
Я хочу сделать подсветку выстрела и вспышки в игре, но только не знаю как это сделать. Чтобы игра...

Движение камеры за курсором в TDS игре на Unity2D
Я хочу сделать так чтобы когда персонаж отводил в сторону курсор то камера немного следовала за...

Реагирование персонажей на звук выстрела в TDS игре на Unity2D
Я хочу чтобы враги когда я стрелял реагировали на звук выстрела и потом начали стрелять в меня. Не...

Синхронизация онлайн игры TDS Unity2D на Photon Pun2
Здравствуйте! У меня проблема с синхронизацией в моей игре! Я незнаю из за чего это может быть. Но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru