Witam, to znowu ja, przychodzę z następnym problemem, gdyż postanowiłem zrobić prostą gierkę. Dopiero zacząłem zabawę z Quaternionami oraz Raycastami, chyba tak to można nazwać i znowu natrafiłem na błąd. Sam go nie zdołam rozwiązać, więc proszę o pomoc społeczność forum ;). Po stworzeniu Raycasta nie wykrywało kolizji ani nic, więc użyłem Debug.DrawRay i zauważyłem, że długość tego lasera jest za krótka, aby wykryło kolizję z danym blokiem. Może jest to spowodowane z innych przyczyn nie wiem, lecz próbowałem wszystkiego po zagranicznych forach, filmach oraz głównej stronie unity i bez skutku.
Oto kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cannon_Script : MonoBehaviour
{
public Vector3 mouse_position;
public Camera cam;
public LayerMask mask;
public Transform end;
void Update() {
mouse_position = cam.ScreenToWorldPoint(Input.mousePosition);
transform.rotation = Quaternion.Euler(0f, 0f, -mouse_position.x * 4);
if(Input.GetKeyDown(KeyCode.Mouse0)) {
Shooting();
}
}
void Shooting() {
RaycastHit2D hit = Physics2D.Raycast(transform.position, -transform.up, 10);
Debug.Log(hit.point);
}
}
Używam C#, ale to w sumie chyba widać xD.
PS - Przepraszam jeśli nie odpiszę po np. paru dniach, ale w szkole mam zapierdziel straszny ;)