-
Notifications
You must be signed in to change notification settings - Fork 0
/
Raycast.cs
82 lines (71 loc) · 2.56 KB
/
Raycast.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityStandardAssets.Characters.FirstPerson;
public class Raycast : MonoBehaviour {
public float range = 500f;
public Camera fpsCam;
public GameObject craft;
public float saldırıAraligi = 0.2f;
private float beklemesuresi;
public RaycastHit hit;
List<GameObject> spawnedObjects = new List<GameObject>();
public GameObject gamePanel; //Panelin kendi sınıfı yok holder obje oluşturdum.
int layerMask = 1 << 0; //Sadece default layerde raycastları görüyor gerisinde görmüyor, normalde böyle yapmak çok aptalca olur.
public int s = 0;
void Start(){
}
void Update () {
if (Input.GetKey (KeyCode.E) && beklemesuresi <= 0) {
shoot ();
}
if (Input.GetKey (KeyCode.X)) {
deleteObjects ();
}
if (beklemesuresi > 0) {
beklemesuresi -= Time.deltaTime;
}
if (Input.GetKeyDown (KeyCode.G)) {
s++;
Debug.Log(s);
if (s == 1) {
characterController ck = GetComponent<characterController>();
ck.mouseStat();
Cursor.lockState = CursorLockMode.Confined;
gamePanel.SetActive(true);
Time.timeScale = 0;
}
else if(s == 2)
{
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
gamePanel.SetActive(false);
s = 0;
Time.timeScale = 1;
//fpc.m_MouseLook.lockCursor = true;
}
}
}
public void shoot(){
if (Physics.Raycast (fpsCam.transform.position, fpsCam.transform.forward, out hit, range,layerMask)) {
Vector3 hitpoint = new Vector3(hit.point.x,hit.point.y,hit.point.z);
GameObject yeniObje = Instantiate (craft,hitpoint,Quaternion.identity);
spawnedObjects.Add (yeniObje);
Debug.Log (hit.transform.name);
//Instantiate (craft,hitpoint,Quaternion.identity);
beklemesuresi = beklemesuresi + saldırıAraligi;
//Debug.Log ("Hitin değdiği nokta : " + hit.point);
//Debug.Log ("Playerin Bulunduğu Nokta : " + this.transform.position);
//Debug.Log ("Camera objesinin bulunduğu nokta : " + fpsCam.transform.position);
}else{
Debug.Log ("You hit nothing");
//Debug.DrawRay (transform.position,transform.TransformDirection(0,0,range),Color.red);
}
}
public void deleteObjects(){
for(int i = 0;i < spawnedObjects.Count;i++){
Destroy (spawnedObjects [i]);
}
}
}