Ejemplo n.º 1
0
    // Use this for initialization
    void Start()
    {
        rb               = GetComponent <Rigidbody>();
        props            = GetComponent <em_properties>();
        default_rotation = transform.rotation.eulerAngles;

        wep_controller = GetComponent <em_weapons_controller>();

        rb.constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationZ | RigidbodyConstraints.FreezePositionY;
    }
Ejemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        if (Mathf.Abs(Vector3.Distance(transform.position, targetPosition)) < 1f)
        {
            Collider[] colliders = Physics.OverlapSphere(transform.position, 1.5f);
            for (int i = 0; i < colliders.Length; i++)
            {
                if (colliders[i].tag == "player")
                {
                    player_weapons_controller pwc = colliders[i].GetComponent <player_weapons_controller>();
                    pwc.SetDmg(atk, "RT");
                }
                else if (colliders[i].tag == "enemy")
                {
                    em_weapons_controller ewc = colliders[i].GetComponent <em_weapons_controller>();
                    ewc.SetDmg(atk, "RT");
                }
            }


            Destroy();
        }

        rb.velocity = transform.forward * spd;

        if (trackCd <= 0f)
        {
            if (target != null)
            {
                pullTargetPositionData();
            }
            trackCd = trackCdMax;
        }
        else
        {
            trackCd -= Time.deltaTime;
        }

        // It works. Do not touch pls.
        Vector3 direction = targetPosition - transform.position;
        float   newRot    = Mathf.Atan(direction.x / direction.z) * 180f / Mathf.PI;
        float   rotSpd    = 20f;

        if (direction.z > 0f)
        {
            Quaternion newQuatRot = Quaternion.Euler(default_rotation.x, default_rotation.y + newRot, default_rotation.z);
            transform.rotation = Quaternion.Lerp(transform.rotation, newQuatRot, Time.deltaTime * rotSpd);
        }
        else
        {
            Quaternion newQuatRot = Quaternion.Euler(default_rotation.x, default_rotation.y + 180f + newRot, default_rotation.z);
            transform.rotation = Quaternion.Lerp(transform.rotation, newQuatRot, Time.deltaTime * rotSpd);
        }
    }
Ejemplo n.º 3
0
    }     // gets target position

    void OnCollisionEnter(Collision c)
    {
        if (c.collider.tag == "player")
        {
            player_weapons_controller pwc = c.collider.GetComponent <player_weapons_controller>();
            pwc.SetDmg(atk, "RT");
        }
        else if (c.collider.tag == "enemy")
        {
            em_weapons_controller ewc = c.collider.GetComponent <em_weapons_controller>();
            ewc.SetDmg(atk, "RT");
        }
    }