У меня такая проблема. В проекте есть тирэйн, при помощи скрипта я разместил по тирэйну траву(mesh FBX). Когда я ранаю проект из эдитора, сцена содержит траву, когда делаю билд, то при его запуске травы нет на тирэйне. Причем, если добавлю модель травы в иерархию - тоесть помещю на тирэйне во вьюпорте, то после сборке и запуске билда этот мэш будет в сцене.
Вот пример кода, класс травы:
Синтаксис:
Используется javascript
class gGrass
{
var grass_01: GameObject;
var grass_02: GameObject;
var grass_03: GameObject;
var grass_04: GameObject;
static var gPath: String;
var gMaterial: Material;
function gGrass(){
gPath = "Assets/sAssets/Grass/";
//gMaterial = Resources.Load("mGrass01");
}
function getGRass01(){
grass_01 = GameObject.Find("grass_01");
grass_01 = Resources.LoadAssetAtPath(gPath + "grass01/grass01.FBX", GameObject);
grass_01.transform.localScale = Vector3(0.3,0.3,0.3);
grass_01.tag = "grass";
//grass_01.renderer.material = gMaterial;
return grass_01;
}
}
{
var grass_01: GameObject;
var grass_02: GameObject;
var grass_03: GameObject;
var grass_04: GameObject;
static var gPath: String;
var gMaterial: Material;
function gGrass(){
gPath = "Assets/sAssets/Grass/";
//gMaterial = Resources.Load("mGrass01");
}
function getGRass01(){
grass_01 = GameObject.Find("grass_01");
grass_01 = Resources.LoadAssetAtPath(gPath + "grass01/grass01.FBX", GameObject);
grass_01.transform.localScale = Vector3(0.3,0.3,0.3);
grass_01.tag = "grass";
//grass_01.renderer.material = gMaterial;
return grass_01;
}
}
А здечь трава размещается по тирэйну в пределах площади куба:
Синтаксис:
Используется javascript
var tHight;
var grass: gGrass;
var x_flag: int;
var z_flag: int;
var x_pos;
var x_neg;
function getTerr(){
return Terrain.activeTerrain;
}
function Start(){
x_pos = transform.position.x + (transform.localScale.x/2);
x_neg = transform.position.x - (transform.localScale.x/2);
z_pos = transform.position.z + (transform.localScale.z/2);
z_neg = transform.position.z - (transform.localScale.z/2);
for (x = x_neg; x < x_pos; x = x+10) {
for (z = z_neg; z < z_pos; z = z+10) {
tHight = Terrain.activeTerrain.SampleHeight(Vector3(x,0,z ));
if (tHight>5 && tHight<60){
if(x_flag==0){if(z_flag==0 | z_flag==6){Instantiate (grass.getGRass01(), Vector3(x,tHight,z ), Quaternion.Euler(270, z_flag*25, 0));}}
if(z_flag<6){z_flag++;}else{z_flag=0;}
}
}
if(x_flag<6){x_flag++;}else{x_flag=0;}
}
}
function Update () {
}
var grass: gGrass;
var x_flag: int;
var z_flag: int;
var x_pos;
var x_neg;
function getTerr(){
return Terrain.activeTerrain;
}
function Start(){
x_pos = transform.position.x + (transform.localScale.x/2);
x_neg = transform.position.x - (transform.localScale.x/2);
z_pos = transform.position.z + (transform.localScale.z/2);
z_neg = transform.position.z - (transform.localScale.z/2);
for (x = x_neg; x < x_pos; x = x+10) {
for (z = z_neg; z < z_pos; z = z+10) {
tHight = Terrain.activeTerrain.SampleHeight(Vector3(x,0,z ));
if (tHight>5 && tHight<60){
if(x_flag==0){if(z_flag==0 | z_flag==6){Instantiate (grass.getGRass01(), Vector3(x,tHight,z ), Quaternion.Euler(270, z_flag*25, 0));}}
if(z_flag<6){z_flag++;}else{z_flag=0;}
}
}
if(x_flag<6){x_flag++;}else{x_flag=0;}
}
}
function Update () {
}