Unity SetActive (true) не работает после установки его в false сначала?
using UnityEngine;
using System.Collections;
public class Ball : MonoBehaviour {
private Rigidbody rigidbody;
public Vector3 LaunchVelocity;
private AudioSource audiosource;
// Use this for initialization
void Start ()
{
GameObject.Find("Touch Panel").SetActive(false);
rigidbody = GetComponent<Rigidbody>();
rigidbody.isKinematic = true;
// disable touch control
audiosource = GetComponent<AudioSource>();
}
// Update is called once per frame
void Update()
{
}
public void LaunchBall(Vector3 passedvelocity)
{
rigidbody.velocity = passedvelocity;
}
public void DropBall() // This is attached to a button
{
rigidbody.isKinematic = false;
GameObject.Find("Touch Panel").SetActive(true);
}
}
Как вы можете видеть выше, я отключил функцию "сенсорная панель" при запуске. Но на функции DropBall (помните, что она прикреплена к кнопке), я установил ее в активное состояние, но она не работает.Может ли кто-нибудь помочь мне с этим?Спасибо.
EDIT: - этот скрипт прикреплен на "мяч". а шарик прикреплен на пуговицу.
"Сенсорная панель" - это дитя холста.
1 ответ:
Ваша проблема заключается в том, что когда вы отключаете
Touch Panel,GameObject.Findне найдете его, так что вы не сможете включить его снова.Эта функция возвращает только активные объекты GameObjects.
Вам нужно настроить свой
Touch Panelкакpublic GameObject myPanelи назначить его в инспекторе, после чего вы можете включить и отключить его.myPanel.SetActive(false); myPanel.SetActive(true);
Comments