wangguan
2020-10-22 7a007a8d1e7cd712fa4571efdbc3f2eba7a7e4d0
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
82
83
84
85
86
using UnityEngine;
using UnityEngine.EventSystems;
using System.Collections;
 
namespace MagicArsenal
{
public class MagicFireProjectile : MonoBehaviour 
{
    RaycastHit hit;
    public GameObject[] projectiles;
    public Transform spawnPosition;
    [HideInInspector]
    public int currentProjectile = 0;
    public float speed = 1000;
 
//    MyGUI _GUI;
    MagicButtonScript selectedProjectileButton;
 
    void Start () 
    {
        selectedProjectileButton = GameObject.Find("Button").GetComponent<MagicButtonScript>();
    }
 
    void Update () 
    {
        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            nextEffect();
        }
 
        if (Input.GetKeyDown(KeyCode.D))
        {
            nextEffect();
        }
 
        if (Input.GetKeyDown(KeyCode.A))
        {
            previousEffect();
        }
        else if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            previousEffect();
        }
 
        if (Input.GetKeyDown(KeyCode.Mouse0))
        {
 
            if (!EventSystem.current.IsPointerOverGameObject())
            {
                if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 100f))
                {
                    GameObject projectile = Instantiate(projectiles[currentProjectile], spawnPosition.position, Quaternion.identity) as GameObject;
                    projectile.transform.LookAt(hit.point);
                    projectile.GetComponent<Rigidbody>().AddForce(projectile.transform.forward * speed);
                    projectile.GetComponent<MagicProjectileScript>().impactNormal = hit.normal;
                }  
            }
 
        }
        Debug.DrawRay(Camera.main.ScreenPointToRay(Input.mousePosition).origin, Camera.main.ScreenPointToRay(Input.mousePosition).direction*100, Color.yellow);
    }
 
    public void nextEffect()
    {
        if (currentProjectile < projectiles.Length - 1)
            currentProjectile++;
        else
            currentProjectile = 0;
        selectedProjectileButton.getProjectileNames();
    }
 
    public void previousEffect()
    {
        if (currentProjectile > 0)
            currentProjectile--;
        else
            currentProjectile = projectiles.Length-1;
        selectedProjectileButton.getProjectileNames();
    }
 
    public void AdjustSpeed(float newSpeed)
    {
        speed = newSpeed;
    }
}
}