Отключение скрипта по клику не срабатывает

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

Отключение скрипта по клику не срабатывает

Сообщение Melkiu 17 окт 2013, 08:55

Помогите новичку разобраться со скриптом
Синтаксис:
Используется javascript
public var targetTag : String = "TagOfTarget";
private var currentGO : GameObject;
private var v3out : Vector3 = Vector3.zero;

function Update ()
{
if ( Input.GetMouseButtonDown(0) )
{
v3out.x = Input.mousePosition.x;
v3out.y = Screen.height - Input.mousePosition.y;
TestHit();
}
 }
 private function TestHit()
  {
  var ray : Ray = Camera.main.ScreenPointToRay(v3out);
  var hitInfo : RaycastHit;
  if ( Physics.Raycast(ray, hitInfo) )
  {
  if ( hitInfo.collider.CompareTag(targetTag) )
  {
   Debug.Log ("Click");
   gameObject.GetComponent("Script").active=false;
   }
    }
     }
По задумке он должен отключать некий скрипт при клике на объект с неким тегом, но срабатывает только Debug.Log
Аватара пользователя
Melkiu
UNец
 
Сообщения: 4
Зарегистрирован: 17 окт 2013, 08:47

Re: Отключение скрипта по клику не срабатывает

Сообщение alt3d 17 окт 2013, 09:09

Это даже я могу ответить )

Компонент через "enabled" вроде бы выключается, а не через "active"
gameObject.GetComponent("Script").enabled = false;
alt3d
Старожил
 
Сообщения: 687
Зарегистрирован: 04 сен 2011, 21:19
  • Сайт
  • ICQ

Re: Отключение скрипта по клику не срабатывает

Сообщение Melkiu 17 окт 2013, 09:26

Так уже пробовал, вот такое вылазит Assets/Tagger.js(25,37): BCE0019: 'enabled' is not a member of 'UnityEngine.Component'. :(
Аватара пользователя
Melkiu
UNец
 
Сообщения: 4
Зарегистрирован: 17 окт 2013, 08:47

Re: Отключение скрипта по клику не срабатывает

Сообщение Melkiu 17 окт 2013, 09:56

немного разобрался в проблеме: должно быть вот так (gameObject.GetComponent("Scrypt") as Scrypt).enabled = false; но требуется какая то библиотека
Аватара пользователя
Melkiu
UNец
 
Сообщения: 4
Зарегистрирован: 17 окт 2013, 08:47

Re: Отключение скрипта по клику не срабатывает

Сообщение Melkiu 17 окт 2013, 10:12

Всё нашёл решение :))
Синтаксис:
Используется javascript
import System.Collections.Generic;
public var targetTag : String = "TagOfTarget";
private var currentGO : GameObject;
private var v3out : Vector3 = Vector3.zero;

function Update ()
{
if ( Input.GetMouseButtonDown(0) )
{
v3out.x = Input.mousePosition.x;
v3out.y = Screen.height - Input.mousePosition.y;
TestHit();
}
 }
 private function TestHit()
  {
  var ray : Ray = Camera.main.ScreenPointToRay(v3out);
  var hitInfo : RaycastHit;
  if ( Physics.Raycast(ray, hitInfo) )
  {
  if ( hitInfo.collider.CompareTag(targetTag) )
  {
   Debug.Log ("Click");
  gameObject.GetComponent("Scrypt").enabled = false;
   }
    }
     }
спасибо за подсказку)
Аватара пользователя
Melkiu
UNец
 
Сообщения: 4
Зарегистрирован: 17 окт 2013, 08:47


Вернуться в Почемучка

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

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