Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 13.02.2019
Сообщений: 12
1

Нанесение урона

11.03.2019, 21:55. Просмотров 3677. Ответов 4
Метки нет (Все метки)


Есть скрипт Gun с методом shoot и скрипт EnemyController с методом hurt. Как сделать так, чтоб значение наносимого урона задавалось в shoot а не в hurt(то что сейчас health -= 20; )?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public int health=100;
public void shoot()
    {
        if (wait <= 0f)
        {
            wait = waitTime;
            shot.Play();
            
 
            RaycastHit hit;
            if(Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out hit))
            {
                if(hit.collider.tag == "Enemy")
                {
                    
                    hit.transform.SendMessage("hurt");
                }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
void hurt()
    {
        health -= 20;
        if (health <= 0)
        {
            StopAllCoroutines();
            agent.enabled = false;
            _animator.SetTrigger("Die");
            gameObject.GetComponent<CapsuleCollider>().enabled = false;
            gameObject.GetComponent<BoxCollider>().enabled = false;
            gameObject.GetComponent<AudioSource>().enabled = false;
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2019, 21:55
Ответы с готовыми решениями:

Перемещение с нанесением урона
у меня имеется мой персонаж, и персонаж который привязан к моему, и постоянно следует за ним с...

Вместо нанесения урона сразу убивает
Здравствуйте, у меня проблемка небольшая. У меня есть 2 скрипта: 1. Это Enemy(враг) 2. Это...

Возникает баг после получения урона C# Unity
Создаю 2D игру. Есть ГГ и противники. Противников можно убить прыгнув на их головы. Если получить...

Canvas или как сделать покраснение экрана при получении урона
Нашел урок по &quot;как сделать покраснение экрана при получении урона&quot;. Но он основан на старой системе...

4
Эксперт .NETАвтор FAQ
9838 / 4797 / 1726
Регистрация: 11.01.2015
Сообщений: 5,976
Записей в блоге: 34
11.03.2019, 22:19 2
Цитата Сообщение от Vladisr Посмотреть сообщение
Есть скрипт Gun с методом shoot и скрипт EnemyController с методом hurt. Как сделать так, чтоб значение наносимого урона задавалось в shoot а не в hurt(то что сейчас health -= 20; )?
Вместо этого
Цитата Сообщение от Vladisr Посмотреть сообщение
hit.transform.SendMessage("hurt");
Нужно:
C#
1
hit.transform.GetComponent<EnemyController>().hurt(-20);
А метод hurt:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
void hurt(float damage)
    {
        health -= damage;
        if (health <= 0)
        {
            StopAllCoroutines();
            agent.enabled = false;
            _animator.SetTrigger("Die");
            gameObject.GetComponent<CapsuleCollider>().enabled = false;
            gameObject.GetComponent<BoxCollider>().enabled = false;
            gameObject.GetComponent<AudioSource>().enabled = false;
        }
    }
0
0 / 0 / 0
Регистрация: 13.02.2019
Сообщений: 12
11.03.2019, 22:58  [ТС] 3
Цитата Сообщение от Storm23 Посмотреть сообщение
Нужно:hit.transform.GetComponent<EnemyController>().hurt(-20);
подчёркивает hurt и юнити выдаёт ошибку Assets\�ࠣࠬ�\Gun.cs(36,67): error CS0122: 'EnemyController.hurt(float)' is inaccessible due to its protection level
0
Эксперт .NETАвтор FAQ
9838 / 4797 / 1726
Регистрация: 11.01.2015
Сообщений: 5,976
Записей в блоге: 34
11.03.2019, 23:32 4
Цитата Сообщение от Vladisr Посмотреть сообщение
'EnemyController.hurt(float)' is inaccessible due to its protection level
Выучите хотя бы основы C#.

Цитата Сообщение от Vladisr Посмотреть сообщение
'EnemyController.hurt(float)' is inaccessible due to its protection level
C#
1
public void hurt(float damage){...}
1
0 / 0 / 0
Регистрация: 13.02.2019
Сообщений: 12
11.03.2019, 23:57  [ТС] 5
Цитата Сообщение от Storm23 Посмотреть сообщение
Выучите хотя бы основы C#.
Спасибо, с головы вылетело что нужно public.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2019, 23:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Нанесение текстуры на два куба разного размера
Здравствуйте,такой вопрос,переношу одну текстуру на два куба(один длиннее другого),когда настраиваю...

Нанесение урона кораблю
TSpaceObject = class Image:TImage; procedure Process; virtual; constructor create(x, y,...

Текстовая стратегия в консоли. Нанесение урона персонажам
Доброе время суток! Ребята подскажите как можно написать бой между 2 персонажами... Т.е. Есть к...

Не увеличивается значение урона с повышением уровня
Описал пулеметную башенку: ее уровень, урон в минуту. Также описал получение опыта при нанесении...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.