Exemple #1
0
    void Update()
    {
        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;

        // 우클릭 이동
        if (Physics.Raycast(ray, out hit, 1000) && Input.GetMouseButton(1))
        {
            if (hit.transform.name != "Player")
            {
                GetComponent <NavMeshAgent>().isStopped   = false;
                GetComponent <NavMeshAgent>().destination = hit.point;
            }
        }

        // 좌클릭 사격
        if (Physics.Raycast(ray, out hit, 1000) && Input.GetMouseButtonDown(0))
        {
            if (hit.transform.name != "Player")
            {
                projectile p = Instantiate(proj, transform.position, Quaternion.identity);
                p.fire(hit.point - transform.position);
            }
        }

        // 정지
        if (Input.GetKeyDown(KeyCode.S))
        {
            GetComponent <NavMeshAgent>().isStopped = true;
        }
    }
Exemple #2
0
 // Update is called once per frame
 void Update()
 {
     damaged.color = Color.Lerp(damaged.color, Color.clear, 3f * Time.deltaTime);
     if (rb2d.velocity[0] > .1)
     {
         transform.localScale = new Vector2(-startingScale, transform.localScale.y);
         right = false;
     }
     else if (rb2d.velocity[0] < -.1)
     {
         transform.localScale = new Vector2(startingScale, transform.localScale.y);
         right = true;
     }
     if (Input.GetMouseButtonDown(0) && !swordRotated)
     {
         sword.SetActive(true);
         //sword.transform.Rotate(0, 0, -90);
         if (right)
         {
             sword.transform.eulerAngles = new Vector3(sword.transform.eulerAngles.x, sword.transform.eulerAngles.y, -70);
         }
         else
         {
             sword.transform.eulerAngles = new Vector3(sword.transform.eulerAngles.x, sword.transform.eulerAngles.y, 100);
         }
         //sword.transform.Rotate(Vector3.right * Time.deltaTime);
         swordRotated = true;
     }
     else if (Input.GetMouseButtonDown(1) && swordRotated)
     {
         sword.SetActive(false);
         //sword.transform.Rotate(0, 0, 90);
         if (right)
         {
             sword.transform.eulerAngles = new Vector3(sword.transform.eulerAngles.x, sword.transform.eulerAngles.y, 20);
         }
         else
         {
             sword.transform.eulerAngles = new Vector3(sword.transform.eulerAngles.x, sword.transform.eulerAngles.y, 20);
         }
         //sword.transform.Rotate(Vector3.left * Time.deltaTime);
         swordRotated = false;
     }
     if ((Input.GetKeyDown("w") || Input.GetKeyDown("space")) && canJump)
     {
         rb2d.velocity = new Vector2(rb2d.velocity[0], jumpForce);
         canJump       = false;
     }
     if (Input.GetKey("d"))
     {
         if (rb2d.velocity[0] < runForce)
         {
             rb2d.AddForce(new Vector2(runForce, 0));
         }
     }
     if (Input.GetKey("a"))
     {
         if (rb2d.velocity[0] > -runForce)
         {
             rb2d.AddForce(new Vector2(-runForce, 0));
         }
     }
     if (Input.GetKey("e"))
     {
         if (!hasShot)
         {
             if (rocks > 0)
             {
                 projectile clone = (Instantiate(projectile, transform.position, transform.rotation)) as projectile;
                 clone.transform.position = new Vector3(clone.transform.position.x, clone.transform.position.y, 1);
                 hasShot  = true;
                 shotTime = shotCoolDown;
                 clone.fire(!right);
                 rocks--;
                 ammoText.text = "Rocks: " + rocks.ToString();
                 //clone.rigidbody.AddForce(1000, 0, 0);
             }
         }
     }
     if (invinsibleTimer > 0)
     {
         invinsibleTimer--;
     }
     if (shotTime > 0)
     {
         shotTime--;
     }
     if (shotTime == 0)
     {
         hasShot = false;
     }
 }