ребят как сделать в скрипте player damage там когда идет зомби он когда отакует снимаються жизни а потом прибавляються можно это исправить?исправить на то что бы он отаковал и осталось столько жизни сколько он снял помоги плиз
var maximumHitPoints = 200.0; var hitPoints : float; var regenerationSpeed : float = 5; var painLittle : AudioClip; var painBig : AudioClip; var die : AudioClip; var deadReplacement : Rigidbody; private var gotHitTimer = -1.0; var healthGUI : GUITexture; private var healthGUIWidth = 100.0; var damage : GameObject; var explShake : GameObject;
function Awake () { healthGUIWidth = healthGUI.pixelInset.width; }
function PlayerDamage (damage : int) { if (hitPoints < 0.0) return;
// Apply damage hitPoints -= damage;
// Play pain sound when getting hit - but don't play so often if (Time.time > gotHitTimer && painBig && painLittle) { // Play a big pain sound if (hitPoints < maximumHitPoints * 0.2 || damage > 100) { audio.PlayOneShot(painBig, 1.0 / audio.volume); gotHitTimer = Time.time + Random.Range(painBig.length * 2, painBig.length * 3); } else { // Play a small pain sound audio.PlayOneShot(painLittle, 1.0 / audio.volume); gotHitTimer = Time.time + Random.Range(painLittle.length * 2, painLittle.length * 3); } }
// Are we dead? if (hitPoints < 0.0) Die(); }
function Die () { if (die && deadReplacement) AudioSource.PlayClipAtPoint(die, transform.position); var dead : Rigidbody = Instantiate(deadReplacement, transform.position, transform.rotation);
// Disable all script behaviours (Essentially deactivating player control) var coms : Component[] = GetComponentsInChildren(MonoBehaviour); for (var b in coms) { var p : MonoBehaviour = b as MonoBehaviour; if (p) p.enabled = false; } yield WaitForSeconds(2.0); LevelLoadFade.FadeAndLoadLevel(Application.loadedLevel, Color.black, 2.0); }
function LateUpdate () { UpdateGUI(); }
function Update (){ //REGENERATION and damage effect if (hitPoints < 200.0 && hitPoints > 0.0) hitPoints += Time.deltaTime * regenerationSpeed; damage.guiTexture.enabled = true;
if (hitPoints > 198.0) damage.guiTexture.enabled = false; }
function Exploasion(){ explShake.animation.Play("exploasion"); }
function UpdateGUI () { var healthFraction = Mathf.Clamp01(hitPoints / maximumHitPoints); healthGUI.pixelInset.xMax = healthGUI.pixelInset.xMin + healthGUIWidth * healthFraction; }
Сообщение отредактировал Doc - Вт, 04 Сен 2012, 16:24
90998, тоесть - убрать регенерацию? Либо regenerationSpeed поставь 0
Code
var regenerationSpeed : float = 0;
, либо вот скрипт с убранной регенерацией:
Code
var maximumHitPoints = 200.0; var hitPoints : float; var painLittle : AudioClip; var painBig : AudioClip; var die : AudioClip; var deadReplacement : Rigidbody; private var gotHitTimer = -1.0; var healthGUI : GUITexture; private var healthGUIWidth = 100.0; var damage : GameObject; var explShake : GameObject;
function Awake () { healthGUIWidth = healthGUI.pixelInset.width; }
function PlayerDamage (damage : int) { if (hitPoints < 0.0) return;
// Apply damage hitPoints -= damage;
// Play pain sound when getting hit - but don't play so often if (Time.time > gotHitTimer && painBig && painLittle) { // Play a big pain sound if (hitPoints < maximumHitPoints * 0.2 || damage > 100) { audio.PlayOneShot(painBig, 1.0 / audio.volume); gotHitTimer = Time.time + Random.Range(painBig.length * 2, painBig.length * 3); } else { // Play a small pain sound audio.PlayOneShot(painLittle, 1.0 / audio.volume); gotHitTimer = Time.time + Random.Range(painLittle.length * 2, painLittle.length * 3); } }
// Are we dead? if (hitPoints < 0.0) Die(); }
function Die () { if (die && deadReplacement) AudioSource.PlayClipAtPoint(die, transform.position); var dead : Rigidbody = Instantiate(deadReplacement, transform.position, transform.rotation);
// Disable all script behaviours (Essentially deactivating player control) var coms : Component[] = GetComponentsInChildren(MonoBehaviour); for (var b in coms) { var p : MonoBehaviour = b as MonoBehaviour; if (p) p.enabled = false; } yield WaitForSeconds(2.0); LevelLoadFade.FadeAndLoadLevel(Application.loadedLevel, Color.black, 2.0); }
function LateUpdate () { UpdateGUI(); }
function Update (){ //REGENERATION and damage effect if (hitPoints < 200.0 && hitPoints > 0.0) damage.guiTexture.enabled = true;
if (hitPoints > 198.0) damage.guiTexture.enabled = false; }
function Exploasion(){ explShake.animation.Play("exploasion"); }
function UpdateGUI () { var healthFraction = Mathf.Clamp01(hitPoints / maximumHitPoints); healthGUI.pixelInset.xMax = healthGUI.pixelInset.xMin + healthGUIWidth * healthFraction; }
Народ, подскажите как сделать так, чтобы веб сборка игры не выскакивала из полноэкранного режима по нажатию Esc. Когдато делал, но щас не могу ни вспомнить, ни найти в настройках (
90998, ничего сложного. Когда нажимаешь кнопку F, из камеры вылетает луч. При столкновении с игровым объектом проверяешь дверь это или нет. Если это дверь, то проигрывается анимация открытия.
Здравствуйте Появилась проблема с камерой, повесил скрипты tapcontrol, thirdpersoncamera, так вот когда в tapcontrol выставляю в Camera Pivot - Camera Pivot (Transform), начинается ужасное дергание камеры и устраняется только отключением скрипта tapcontrol или выставлением другого объекта в Camera Pivot, что просто низяяя, помогите, как избавиться от дергания камеры, оставив tapcontrol и camera pivot
Добавлено (03.07.2012, 12:46) --------------------------------------------- Помогите, пожалуйста со скриптом Суть вот в чем, персонаж поворачивается в ту сторону, где было касание по экрану Help me, please with script
Code
// Click To Move script // Moves the object towards the mouse position on left mouse click
var smooth:int; // Determines how quickly object moves towards position // State for tracking touches
private var state = ControlState.WaitingForFirstTouch; private var fingerDown : int[] = new int[ 2 ]; private var fingerDownPosition : Vector2[] = new Vector2[ 2 ]; private var fingerDownFrame : int[] = new int[ 2 ]; private var firstTouchTime : float; private var targetPosition:Vector3;
var count : int = Input.touchCount; var touch : Touch = Input.GetTouch(0);
function Update () { if(count == 1 && state == ControlState.MovingCharacter) { var playerPlane = new Plane(Vector3.up, transform.position); var ray = Camera.main.ScreenPointToRay (fingerDownPosition); var hitdist = 0.0;
if (playerPlane.Raycast (ray, hitdist)) { var targetPoint = ray.GetPoint(hitdist); targetPosition = ray.GetPoint(hitdist); var targetRotation = Quaternion.LookRotation(targetPoint - transform.position); transform.rotation = targetRotation; } }