Пятница, 19 Апреля 2024, 09:40

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Нужна помощь в скрипте. (Нужно узнать на какой сейчас Player сцене.)
Нужна помощь в скрипте.
AdomДата: Вторник, 16 Июля 2013, 22:20 | Сообщение # 1
Печенька!
Сейчас нет на сайте
И так я делаю простую 2d игру где надо прыгать по платформам так-вот я сделал пол ну что бы когда Player падал он уничтожался и там выходит выбор рестарт или выйти.Я сделал это для 1 уровня,а потом для 2 но потом на 2 уровне появилась как-раз проблема когда я падаю у меня как-всегда выходит выбор и я нажимаю рестарт и меня отправляет на первый уровень.Вот вопрос как сделать чтобы делался рестарт в зависимости от уровня то-есть чтобы на 2 уровне он отправлял меня в начало 2 уровня.
Надесюсь все нормально объяснил.
Вот скрипт
#pragma strict
var Player : GameObject;
var a : float =0;
public var RestartRect : Rect;
public var QuitRect : Rect;
public var customSkin : GUISkin;
function Start () {

}

function Update () {

}
function OnTriggerStay(other : Collider){
Destroy(Player);
a +=1;
}
function OnGUI(){
if(a == 1)
GUI.Label(new Rect(50,50,50,50),"You Dead!");
//
if(a == 1)
if(GUI.Button(RestartRect,"Рестарт")){
Application.LoadLevel(1);
}
if(a == 1)
if(GUI.Button(QuitRect,"Выход")){
Application.Quit();
}
GUI.skin = customSkin;
}
Писал его сам так-что строго не судите. biggrin


Сообщение отредактировал Adom - Вторник, 16 Июля 2013, 22:21
ЛевшаДата: Среда, 17 Июля 2013, 03:02 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
Цитата (Adom)
if(GUI.Button(RestartRect,"Рестарт")){
Application.LoadLevel(1);

Application.LoadLevel (loadedLevel);


X.cor.R (Prologue)

Сообщение отредактировал Левша - Среда, 17 Июля 2013, 14:25
AdomДата: Среда, 17 Июля 2013, 11:07 | Сообщение # 3
Печенька!
Сейчас нет на сайте
Левша,что-то я совсем не пойму как этим воспользоваться?
KiraДата: Среда, 17 Июля 2013, 19:32 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
#pragma strict
var Player : GameObject;
var a : float =0;
public var RestartRect : Rect;
public var QuitRect : Rect;
public var customSkin : GUISkin;
public var curentLevel : int;
function Start () {

}

function Update () {

}
function OnTriggerStay(other : Collider){
Destroy(Player);
a +=1;
}
function OnGUI(){
if(a == 1)
GUI.Label(new Rect(50,50,50,50),"You Dead!");
//
if(a == 1)
if(GUI.Button(RestartRect,"Рестарт")){
Application.LoadLevel(curentLevel);
}
if(a == 1)
if(GUI.Button(QuitRect,"Выход")){
Application.Quit();
}
GUI.skin = customSkin;
}
curentLevel- текущий уровень.


Unity3d разработчик на С#. Лучшее спасибо + в репу.
"Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
"Человек, который никогда не ошибался никогда не пробовал ничего нового".
"Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
PoqXertДата: Четверг, 18 Июля 2013, 01:56 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
Application.LoadLevel(Application.loadedLevel);
И инспектор мучить не придётся.


Расширения для Unity3D
Блог программиста - PoqXert.ru
AdomДата: Четверг, 18 Июля 2013, 08:42 | Сообщение # 6
Печенька!
Сейчас нет на сайте
Kira,Спасибо помогло с меня + happy

Добавлено (18.07.2013, 08:42)
---------------------------------------------
Вот еще один вопрос как сделать чтобы уровень был заблокирован если игрок до него еще не дошел?
#pragma strict
public var customSkin : GUISkin;
public var OneLevlRect : Rect;
public var TwoLevlRect : Rect;
function Start () {

}

function Update () {

}
function OnGUI() {
if(GUI.Button(OneLevlRect,"OneLevl")){
Application.LoadLevel(1);
}
if(GUI.Button(TwoLevlRect,"TwoLevl")){
Application.LoadLevel(2);
}
}
Вот скрипт через что я загружаю уровни ну как в Angri Birds.

PoqXertДата: Четверг, 18 Июля 2013, 09:17 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Храни в глобальной (статик) переменной номер уровня, до которого дошел игрок и проверяй.

Расширения для Unity3D
Блог программиста - PoqXert.ru
AdomДата: Четверг, 18 Июля 2013, 10:08 | Сообщение # 8
Печенька!
Сейчас нет на сайте
Ага попробую

Добавлено (18.07.2013, 10:08)
---------------------------------------------
Блин что-то не получается ты уж извини но я пока что нуб в писании скриптов.Можешь как нибудь объяснить?

zaicev9797Дата: Четверг, 18 Июля 2013, 15:01 | Сообщение # 9
AbRaKaDaBrA
Сейчас нет на сайте
Напишу русслими буквами и без пробелов, надеюсь поймешь. Привате статик ПройденоУровней; при прохождении уровня прибавляй к ней 1. А если ты в менюшке (или как у тебя там) щелкаеш по любой кнопке ( а им переменной надо задать номер уровня на который они будут перекидывать (он же номер кнопки) проверяй чтоб: номер кнопки совпадал с переменной ПройденоУровней + 1. И если совпадает, то аппликатион.лоадЛевел(номер кнопки по йоторой щелкнули

проект Mysterious Space. The losted moment
AdomДата: Четверг, 18 Июля 2013, 19:50 | Сообщение # 10
Печенька!
Сейчас нет на сайте
Воспользуюсь еще раз вашим терпением smile
Мне нужно переделать вот-этот скрипт под андроид я пытался это делать но никак может вы поможете cool
Ну тоесть сделать управление под андроид
Сразу говорю скрипт не мой брал из урока 4GameFreee
using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour{

private Vector3 inp;
private Vector3 delta;
private Vector3 oldPos;
private Vector3 gravity;
private const float pi2 = Mathf.PI * Mathf.PI;

public float diam = 7f;

public float speed = 7f;
public Transform cam;
GameObject fire;

// Use this for initialization
void Start (){
oldPos = transform.position;
Physics.gravity = new Vector3(0, -75, 0);
}

// Update is called once per frame
void Update ()
{
fire = GameObject.Find("fire");
if (Input.GetKeyDown(KeyCode.Space)){

}
inp.x = Input.GetAxis("Horizontal");
}
void FixedUpdate()
{

Vector3 cp = transform.position - cam.position;
cp.y = 0f;
transform.Translate(Quaternion.LookRotation(cp) * inp * speed * Time.deltaTime, Space.World);
delta = oldPos - transform.position;

float ang = Mathf.Sin(delta.magnitude / diam / pi2) * Mathf.Rad2Deg;
transform.RotateAround(Vector3.Cross(delta, Vector3.up), ang);
oldPos = transform.position;

}
}


Сообщение отредактировал Adom - Четверг, 18 Июля 2013, 21:15
NovatorvladДата: Четверг, 18 Июля 2013, 22:27 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
zaicev9797, Уж лучше совсем не отвечай.
Adom, Зря надеешься. Переделать кнопки на нажатие на экран по справке не сложно. Скорей всего в этом разделе справки можно найти то, что тебе нужно.
И не надейся сослаться на незнания английского.


Девбложек
AdomДата: Пятница, 19 Июля 2013, 07:35 | Сообщение # 12
Печенька!
Сейчас нет на сайте
Да это легко но я не пойму что вот с этим делать
inp.x
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Нужна помощь в скрипте. (Нужно узнать на какой сейчас Player сцене.)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг