内容纲要

基本功能

    1. 锤子跟踪鼠标位置移动
    2. 地鼠随机的上升
    3. 锤子击打地鼠后加分
    4. 一定时间后游戏结束
      游戏画面

实现方法

    1. 锤子跟着鼠标移动:根据场景中的摄像机发出的射线,射线的终点在鼠标点,在场景中建立一个与射线碰撞的层,锤子的坐标点就在射线与碰撞层碰撞的位置
     void Start()
    {
        dir = GetComponent();
        dir.SetPosition(0, cameraTransform.position);
    }
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            Debug.DrawRay(ray.origin, ray.direction * 20);
            RaycastHit hit;
            int layerMask = 1 <= 10)
        {
            int i = Random.Range(0, transform.childCount);
            MouseUpdate(i);
            journry = 0;
            print(journry);
        }
    }
    void MouseUpdate(int index)
    {
        if (index  transform.childCount)
        {
            return;
        }
        Transform child = transform.GetChild(index);
        child.GetComponent().isMove = true;
  1. 锤子击打地鼠后加分:使用碰撞检测监听事件
    private void OnTriggerEnter(Collider other)
    {
        if (isPlay == false)
        {
            return;
        }
        if (other.gameObject.name == "Plane1")
        {
            isPlay = false;
            other.gameObject.GetComponent().isMove = false;
            other.gameObject.GetComponent().isKinematic = false;
        }
        else if (other.gameObject.name == "mouse")
        {
            score += 10;
            AddScore();
        }
    }
  1. 到时间游戏结束:使用一个时间变量,在Update()中实时改变参数,当参数为0时则游戏结束
    void Update()
    {
        if (time <= 0)
        {
            //Application.Quit();//退出游戏
            gameOver.enabled = true;
            return;
        }
        this.time -= Time.deltaTime;
        timeText.text = "Time: " + time.ToString("0.0");
    }

发表评论