2 Базовый луч, дырки от пуль

using UnityEngine;
using System.Collections;

public class RaycastShooting2 : MonoBehaviour {
	public Transform camera1;
	public Transform metalHit;
	private RaycastHit Hit;
	// Use this for initialization
	void Start () {
	
	}
	
	void Update () 
	{
		if(Input.GetMouseButtonDown(0))
		{
			Vector3 Direction = camera1.TransformDirection(Vector3.forward);
			if(Physics.Raycast(camera1.position, Direction, out Hit, 10000f))
			{
				Quaternion HitRotation = Quaternion.FromToRotation(Vector3.up, Hit.normal);
				if(Hit.transform.rigidbody)
				{
					Hit.transform.rigidbody.AddForceAtPosition(Direction*1000, Hit.point);
				}
				if(Hit.collider.material.staticFriction==0.2f)
				{
					Transform metalhitGO = Instantiate(metalHit,Hit.point+(Hit.normal*0.001f),HitRotation) as Transform;
					metalhitGO.transform.parent = Hit.transform;
					Destroy((metalhitGO as Transform).gameObject, BulletHoleLifeTime);
				}
			}
		}
	}
}

Комментарии к этому посту

  • Андрей
    19.11.2013 at 21:12

    Спасибо!!


  • данил
    16.02.2014 at 18:53

    спасибо огромное!!!


  • Visochestvo
    25.02.2014 at 00:50

    BulletHoleLifeTime что это за свойство?


  • Visochestvo
    25.02.2014 at 01:06

    Все понял нужна переменная c числовым значение и была проблема оказалась статикфрикшен у меня 0,25 на металле


  • лалка
    21.07.2014 at 00:35

    Блин бля меня это всё слишком сложно и я понимаю только половину но скрипты писать хочу уметь (((


  • Дмитрий
    30.08.2014 at 00:07

    Урок супер! Хочу внести свое дополнение… 🙂
    Для тех кто хочет чтобы пули исчезали (в целях оптимизации и т.д.) придумал маленькую хитрость… Так как на C# в Unity нету функции Destroy (непонятно почему правда…), создаем Java скрипт, и пихаем туда
    ___________
    #pragma strict

    function Update () {
    Destroy (gameObject, 5); // где число это наше время жизни дырки
    }
    ________________

    Этот скрипт кидаем на созданный префаб дыры от пули. И все 🙂 В нашем случае через 5 сек дыра удалиться.

    А Вам 2DHD спасибо, только пару дней осваиваю Unity и вроде как успешно.
    P.S. Отдельное спасибо Андрею!


  • Пирожок
    23.02.2015 at 09:19

    Урок отличный, только в скрипт под видео некорректный, переменная BulletHoleLifeTime не объявлена, а в скрипте используется..



Оставить комментарий