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;
}
}