Как добавить префаб на сцену посредством скрипта?

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

Как добавить префаб на сцену посредством скрипта?

Сообщение AntiVIRUZ 01 июн 2012, 20:05

Доброго времени суток. Задался таким вопросом и толком на С# ничего не нашел. В целом я нашел код в официальной документации:
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    public Transform prefab;
    void OnTriggerEnter() {
        Instantiate(prefab);
    }
}


Но мне непонятно как объяснить "prefab"у что я хочу запилить на сцену ;)

И еще: как потом его контролировать? Можно на него повесить скрипт отдельный?

////////////////////////////////////////////////////////////////////////////////////////////

Синтаксис:
Используется csharp
// Require the rocket to be a rigidbody.
// This way we the user can not assign a prefab without rigidbody
var rocket : Rigidbody;
var speed = 10.0;

function FireRocket () {
    var rocketClone : Rigidbody = Instantiate(rocket, transform.position, transform.rotation);
    rocketClone.velocity = transform.forward * speed;
    // You can also acccess other components / scripts of the clone
    rocketClone.GetComponent(MyRocketScript).DoSomething();
}

// Calls the fire method when holding down ctrl or mouse
function Update () {
    if (Input.GetButtonDown("Fire1")) {
        FireRocket();
    }
}

Так. Наткнулся еще на это. "rocket" это название префаба? И еще
Синтаксис:
Используется csharp
rocketClone.GetComponent(MyRocketScript).DoSomething();

можно задействовать не функцию, а скрипт целиком?
AntiVIRUZ
UNец
 
Сообщения: 6
Зарегистрирован: 29 май 2012, 17:43

Re: Как добавить префаб на сцену посредством скрипта?

Сообщение Receptor 01 июн 2012, 20:22

Что бы выбрать префаб, вначале скрипта напишите:
Синтаксис:
Используется csharp
public GameObject myPrefab;
 


В инспектре где срикпт этот висит появится строчка "My Prefab", в нее можете добавить ваш префаб
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Как добавить префаб на сцену посредством скрипта?

Сообщение AntiVIRUZ 01 июн 2012, 20:26

Спасибо большое.. Но как на него повесить скрипт... У меня вопрос остается открытым.
AntiVIRUZ
UNец
 
Сообщения: 6
Зарегистрирован: 29 май 2012, 17:43

Re: Как добавить префаб на сцену посредством скрипта?

Сообщение Chaz 01 июн 2012, 21:02

перетяни скрипт на префаб и все хД
Chaz
Адепт
 
Сообщения: 1412
Зарегистрирован: 07 апр 2012, 11:24


Re: Как добавить префаб на сцену посредством скрипта?

Сообщение AntiVIRUZ 02 июн 2012, 09:15

перетяни скрипт на префаб и все хД


Чет я реально тупанул...

//////////////////////////
Синтаксис:
Используется csharp
private Rigbody prefab;
private float speed = 4F;

void Fire () {
        Rigidbody shootClone1;
                shootClone1 = Instantiate(prefab , new Vector3(transform.position.x - 0.25F, transform.position.y, transform.position.z), Quaternion.Euler(0,90,0)) as Rigidbody;
                Rigidbody shootClone2;
                shootClone2 = Instantiate(prefab , new Vector3(transform.position.x + 0.25F, transform.position.y, transform.position.z), Quaternion.Euler(0,90,0)) as Rigidbody;
    shootClone1.velocity =  new Vector3 (0, 0, speed) ;
        shootClone2.velocity =  transform.TransformDirection(Vector3.forward * speed);
}


Почему в строке " shootClone1.velocity = new Vector3 (0, 0, speed) ;" возникает ошибка "NullReferenceException: Object reference not set to an instance of an object"??!!
AntiVIRUZ
UNец
 
Сообщения: 6
Зарегистрирован: 29 май 2012, 17:43


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

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

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