Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 13.09.2020
Сообщений: 138
1

Как сделать слежку глаз за игроком?

11.09.2022, 15:07. Показов 1028. Ответов 4

Author24 — интернет-сервис помощи студентам
Такой вот вопрос, есть у меня отверстия в картине, и отдельные спрайты глаз. Как сделать так, чтобы эти самые глаза постоянно следили за игроком?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.09.2022, 15:07
Ответы с готовыми решениями:

Как сделать слежку за игроком?
Вот создал магазин,выбираю персонажа,а следит за старым которого нет. Помогите улучшить код чтобы...

Как сделать слежку в Google Analytics за кнопкой?
Здравствуйте, не могу понять, как сделать подсчет в GA количества нажатий на кнопку... везде...

Как сделать слежку за объектом при свайпе страницы?
Вот мой код(надо сделать слежку за объектом в диве с классом "panel" при свайпе страницы):...

Как сделать обьект игроком на 2019 версии?
Да, знаю глупый вопрос, но гайды все были созданы до 2017 года, и соотв сейчас нету некоторых меню,...

Как сделать так чтобы камера следила за игроком?
Подскажите пожалуйста!

4
2636 / 1564 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
11.09.2022, 16:14 2
Здесь нужно увидеть как устроены глаза на картине. Возможно их достаточно просто крутить в сторону игрока, если зрачек находиться не в центре. А может нужно двигать именно положение, если глаз узкий. Вобщем лучше покажите вашу картину и её глаза.
0
0 / 0 / 0
Регистрация: 13.09.2020
Сообщений: 138
11.09.2022, 16:51  [ТС] 3
Вот
Миниатюры
Как сделать слежку глаз за игроком?  
0
<Dragon/Craft>
24 / 19 / 6
Регистрация: 07.05.2019
Сообщений: 297
Записей в блоге: 2
11.09.2022, 22:07 4
snippet02, Как писал ранее Samana -
Цитата Сообщение от samana Посмотреть сообщение
может нужно двигать именно положение, если глаз узкий
Взять крайнее положение глазницы (Контура глаза) и из координат игрока брать Х и поворачивать (Скорее передвигать) глаза в сторону игрока:
Раз - Наш форум;
Два - Наш форум.

P.S. Конечно тут не совсем удобный вариант слежки за игроком, но извернуться можно.
0
2636 / 1564 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
11.09.2022, 22:42 5
Лучший ответ Сообщение было отмечено snippet02 как решение

Решение

snippet02, я так понимаю, что в данном случае должны двигаться только чёрные зрачки.
Тогда накиньте на каждый зрачок следующий скрипт.
Заполните поля в инспекторе (добавьте игрока в качестве цели (Target), а так же подгоните примерный радиус самого белка глаза (гизмо будет отображать этот радиус, но его можно отключить в инспекторе):
Как сделать слежку глаз за игроком?


Так же можно настроить "силу слежения" зрачка от 0 до 1, например чтобы глаз не так сильно поворачивался. На гифках ниже два результата с разной "силой слежения".

плавно
Как сделать слежку глаз за игроком?


грубо
Как сделать слежку глаз за игроком?


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
using UnityEngine;
 
public class Eye : MonoBehaviour
{
    public Transform Target;
 
    [Min(0f)]
    public float Radius = 1;
 
    [Range(0f, 1f)]
    public float TrackingForce = 1;
 
    private Vector3 _initPos;
 
    [Header("Debug Settings")]
    [SerializeField]
    private bool _showRadius = true;
 
    void Start()
    {
        if (transform.parent != null)
            _initPos = transform.localPosition;
        else
            _initPos = transform.position;
    }
 
    void Update()
    {
        Vector3 toTarget;
        if (transform.parent != null)
        {
            toTarget = transform.parent.InverseTransformPoint(Target.position) - _initPos;
            transform.localPosition = _initPos + Vector3.ClampMagnitude(toTarget * TrackingForce, Radius);
        }
        else
        {
            toTarget = Target.position - _initPos;
            transform.position = _initPos + Vector3.ClampMagnitude(toTarget * TrackingForce, Radius);
        }
    }
 
    private void OnDrawGizmos()
    {
        if (_showRadius == false) return;
 
        if (Application.isPlaying)
        {
            if (transform.parent != null)
                Gizmos.DrawWireSphere(transform.parent.TransformPoint(_initPos), Radius);
            else
                Gizmos.DrawWireSphere(_initPos, Radius);
        }
        else
        {
            Gizmos.DrawWireSphere(transform.position, Radius);
        }
 
    }
}
1
11.09.2022, 22:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.09.2022, 22:42
Помогаю со студенческими работами здесь

Как сделать чтобы генерировалось рандомное число в пределах значений введенных игроком через Input Field?
Как сделать рандомный генератор чисел в пределах от введённого числа до другого введённого числа ...

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

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

Как проверить дистанцию между игроком и объектами?
Как проверить дистанцию между игроком и объектами с определенным тегом, то есть у меня есть объекты...

Как синхронизировать объекты не связанные с игроком в photon?
Проблем с синхронизацией игроков нет никаких. А вот боты живут своей жизнью. Если ии который...

Как подключить джойстик к камере которая следит за игроком?
Если коротко то делаю игру где в главное роли шар и делаю управление от 3-го лица. Так как...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru