Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania i odpowiedzi
Viewing all articles
Browse latest Browse all 83164

Unity kolizje z użyciem Raycast - a oraz LineRenderer - a

$
0
0

Hej, może wie ktoś z Was w jaki sposób odbić laser, który jest zrobiony z raycasta i linerenderera. Mam rozpoznanie obiektu po tagu, ale dalej kompletnie nie wiem co wykombinować. Na razie mam tylko coś takiego, jeżeli ktoś mógłby pomóc lub polecić jakąś książkę/tutorial, gdzie byłoby to opisane to byłbym dozgonnie wdzięczny :) (skrypt podczepiony do pustego obiektu na końcu pistoletu, wszytko działa oprócz tego)

using UnityEngine;
using System.Collections;


public class LaserGunScript : MonoBehaviour {
	LineRenderer line;
	public Vector3 reflectDir;
void Start () {
		line = gameObject.GetComponent<LineRenderer> ();
		line.enabled = false;
	}
void Update () {
		if (Input.GetMouseButton(0)) {
			StopCoroutine ("FireLaser");
			StartCoroutine ("FireLaser");
		}
	}
IEnumerator FireLaser(){
		line.enabled = true;
		while (Input.GetMouseButton (0)) {
			Ray ray = new Ray (transform.position , transform.forward);
			RaycastHit hit;

			line.SetPosition (0, ray.origin);
			if (Physics.Raycast (ray, out hit, 100)) {
				line.SetPosition (1, hit.point);
				if (hit.collider.tag=="Mirror") {
					reflectDir = Vector3.Reflect (ray.direction, hit.normal);
					transform.rotation.SetFromToRotation (ray.direction, reflectDir);
				}
			}
				else {
							line.SetPosition(1, ray.GetPoint(100));
				}
			yield return null;
		}
		line.enabled = false;
	}
}

 


Viewing all articles
Browse latest Browse all 83164