Nano Hash - криптовалюты, майнинг, программирование

BCE0019: «столкновение» не является членом «Объекта»

Это ошибка сценария Unity3D js, на ПК все работает нормально, но если я попытаюсь переключить платформу на Android...

Триггер_скрипт:

#pragma strict
var P : GameObject;
var P_script;
var P_objname = "Player";
var P_script_name = "Player_script";

function Start() {

P = GameObject.Find(P_objname);
P_script = P.GetComponent(P_script_name);
}

function OnTriggerEnter(collider : Collider) {
if(collider.gameObject.name == P_objname) P_script.collision = true;
}

И Player_Script:

#pragma strict
var collision : boolean;
var respawn_position : Vector3;
var respawn_time : int = 1;
var respawn_objname = "Respawn";

function Update () {
if(collision) {
Respawn();
}
    }

function Respawn() {
renderer.enabled = false;
respawn_position = GameObject.Find(respawn_objname).transform.position;
gameObject.transform.position = respawn_position;
yield WaitForSeconds(respawn_time);
renderer.enabled = true;
collision = false;
}

Помогите мне плз :о


Ответы:


1

Если вы не знаете тип P_script заранее, вам следует использовать SendMessage или вы захотите использовать полиморфизм.

Если вы заранее знаете тип скрипта:

#pragma strict
var P_script : YourScript;


function Start() {
    var tmp = GameObject.Find(P_objname);
    P_script = tmp.GetComponent("YourScript");
    P_script.collision = true;
    Debug.Log("Current collision: " + P_script.collision);
}

Если вы не знаете тип скрипта заранее:

//(Trigger script)
#pragma strict
var P_script : YourScript;


function Start() {
    var tmp = GameObject.Find(P_objname);
    tmp.SendMessage("SetCollision",true);

    P_script = tmp.GetComponent("YourScript");
    Debug.Log("Current collision: " + P_script.collision);
}

//(Player script)
//... all your other code plus this:
function SetCollision(var b : boolean){
    collision = b;
}
25.09.2013
  • Я протестировал это, но теперь: NullReferenceException: Ссылка на объект не указывает на экземпляр объекта Trigger_script.Start() (в Assets/Script/Trigger_script.js:8) #pragma strict var P_script : Player_script; var P_objname = Игрок; function Start() { var tmp = GameObject.Find(P_objname); P_script = tmp.GetComponent(Player_script); P_script.collision = истина; Debug.Log(Текущая коллизия: + P_script.collision); } 25.09.2013
  • @RaffaeleElShaarawyIabichino tmp.GetComponent("Player_script"); должен точно совпадать с названием вашего скрипта. Попробуйте использовать tmp.GetComponent("Player_Script"); (обратите внимание на заглавную букву «S»). 25.09.2013
  • Хорошо, я попробую, и: NullReferenceException Player_script+$Respawn$34+$.MoveNext() (в Assets/Script/Player_script.js:23) UnityEngine.MonoBehaviour:StartCoroutine_Auto(IEnumerator) Player_script:Update() (в Assets/Script/Player_script. js:13), и еще одна ОШИБКА: NullReferenceException: ссылка на объект не указывает на экземпляр объекта Trigger_script.Start() (в Assets/Script/Trigger_script.js:9). ЛоЛ Сейчас? Помоги мне.... 26.09.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..