Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не могу правильно настроить скрипт в юнити с#

Дмитрий человеков Ученик (222), на голосовании 3 месяца назад
Всем привет я столкнулся с проблемой в движке юнити , решил сделать обьект телевизор чтобы игрок к нему подошел, появилась кнопка он нажал на нее и телевизор стал воспроизводить видео, а когда нажимал еще раз эту кнопку то видео выключалось. Когда отошел от предмета то кнопка пропадала. Сделал пару скриптов но один работает криво(нету радиуса действия и кнопка есть всегда,но все работает и телевизор вкючается и выключается) и есть 2 скрипт где я добавил радиус без удаления метода ToggleVideo(у меня без него ничего не работает) то кнопка не появляется вообще и соответственно не работает радиус и сам телевизор. помогите добрые люди пожалуйста)))
1 рабочий скрипт без радиуса
using UnityEngine;
using UnityEngine.UI;

public class ButtonController : MonoBehaviour
{
public VideoController videoController;

public void ToggleVideo()
{
videoController.ToggleVideo();
}
}
2 не рабочий вообще с радиусом
using UnityEngine;
using UnityEngine.UI;

public class ButtonController : MonoBehaviour
{
public VideoController videoController;
public GameObject player;
public float radius = 5f;
private bool isPlayerInRange = false;
private Button button;

private void Start()
{
button = GetComponent<Button>();
button.onClick.AddListener(ToggleVideo);
}

private void Update()
{
if (isPlayerInRange)
{
button.gameObject.SetActive(true);
if (Input.GetKeyDown( KeyCode.Space ))
{
ToggleVideo();
}
}
else
{
button.gameObject.SetActive(false);
}

// Проверяем расстояние между игроком и кнопкой
float distance = Vector3.Distance(player.transform.position, transform.position);
if (distance <= radius)
{
isPlayerInRange = true;
}
else
{
isPlayerInRange = false;
}
}

public void ToggleVideo()
{
videoController.ToggleVideo();
}
}
Голосование за лучший ответ
GGG Просветленный (35292) 4 месяца назад
 using UnityEngine; 
using UnityEngine.UI;

public class ButtonController : MonoBehaviour
{
public VideoController videoController;
public GameObject player;
public float radius = 5f;
public KeyCode activationKey = KeyCode.Space;

private Button button;
private bool isPlayerInRange = false;

private void Start()
{
button = GetComponent
Похожие вопросы