Как сделать так, что бы автомобиль повреждался (терял часть "здоровья") при столкновении с другими автомобилями и предметами? Манипуляции со скриптами для "двуногих" не помогли. Желательно просмотреть пример такого скрипта, а еще лучше - статью на подобную тему.
Quote (Shut)
Первые уроки как раз об этом
Нет, не об этом. У меня конкретная проблема, а увлечение буржуйскими видеороликами на отвлеченные темы.
Quote (seaman)
Уроков на все Ваши конкретные проблемы никогда не будет. Если будут описаны все возможные проблемы, значит будут сделаны все возможные игры. Зачем Вы тогда нужны? Так что изучайте существующие уроки и думайте.
Уроков не будет. А похожие примеры должны быть.
Сообщение отредактировал Упырь - Чт, 22 Дек 2011, 22:04
Нет, не об этом. У меня конкретная проблема, а увлечение буржуйскими видеороликами на отвлеченные темы.
Уроков на все Ваши конкретные проблемы никогда не будет. Если будут описаны все возможные проблемы, значит будут сделаны все возможные игры. Зачем Вы тогда нужны? Так что изучайте существующие уроки и думайте.
var hitPoints = 100; //наши жизни var detonationDelay = 0.0; //задержка взрыва var sparks : Transform; //искры var explosion : Transform; //взрыв var deadReplacement : Rigidbody; //труп var guiskin : GUISkin; //скин интерфейса var endtext : Transform; //текст проигрыша
var deformation : float; //величина деформации кузова
function Update (){ GetComponentInChildren(TextMesh).text = hitPoints.ToString(); }
var body = GameObject.FindWithTag ("Body"); //находим кузов var mesh : Mesh = body.GetComponent(MeshFilter).mesh; //берем мешь кузова // Randomly change vertices var vertices = mesh.vertices; //берем вершины меша кузова for (var p in vertices) { p.x += Random.Range(-deformation, deformation) ; //мнем по всех осях p.y += Random.Range(-deformation, deformation) ; p.z += Random.Range(-deformation, deformation) ; } mesh.vertices = vertices; //mesh.RecalculateNormals();
// We already have less than 0 hitpoints, maybe we got killed already? if (hitPoints <= 0.0) //если кончились жизни return; //убиваем
hitPoints -= damage; //отнимаем жизни if (hitPoints <= 0.0) //если жизни не кончились { // Start emitting particles var emitter : ParticleEmitter = GetComponentInChildren(ParticleEmitter); if (emitter) emitter.emit = true;
Invoke("DelayedDetonate", detonationDelay); } }
function DelayedDetonate () { BroadcastMessage ("Detonate"); }
function Detonate () //пришло время взрыва { // Destroy ourselves Destroy(gameObject); //уничтожаем тачку Instantiate(endtext, transform.position, transform.rotation); //показываем текст проигрыша
// Create the explosion if (explosion) //если взрыв указан Instantiate (explosion, transform.position, transform.rotation); //взрываем
// If we have a dead barrel then replace ourselves with it! if (deadReplacement) //если труп указан { var dead : Rigidbody = Instantiate(deadReplacement, transform.position, transform.rotation); //создаем труп
// For better effect we assign the same velocity to the exploded barrel dead.rigidbody.velocity = rigidbody.velocity; //и задаем ему скорость тачки dead.angularVelocity = rigidbody.angularVelocity; }
// If there is a particle emitter stop emitting and detach so it doesnt get destroyed // right away var emitter : ParticleEmitter = GetComponentInChildren(ParticleEmitter); if (emitter) { emitter.emit = false; emitter.transform.parent = null; }
Господа у меня появился вопрос по использованию Mesh. есть моделька А и та же моделька Б но покорёженная с помощью Mesh можно перемещать вершины, но появляется проблема после экспорта с измененными позициями вершин в модель Б,количество вершин у модели меняется +-5% приблизительно и получается что модельки разные и изменив вершины по такому коду,они не совпадают задуманной траекторией.
Code
while (i < vertex.Length) { vertex[i] = (vertex_dam[i]); i++; }
код урезал но суть осталась, у меня там плавное смещение вершин, по этому мне не нужна замена Мэша. TLT-GC Жизнь тебе не фунт изюма, даже если ты изюм.
плохо, потому что при экспорте не сохраняются идентичные данные что были в оригинале в 3д редакторе, ладно спасибо за разъяснение, придется выкручиваться и создавать деформацию заранее программно или в юнити сдвинуть меши и пересохранить как новую модельку, но все равно спасибо еще раз пойду думать. TLT-GC Жизнь тебе не фунт изюма, даже если ты изюм.