コード例 #1
0
ファイル: Player.cs プロジェクト: vegechick123/GridPackage
    void Putdown()
    {
        if (!conveyObject)
        {
            return;
        }
        GTower tower = GridManager.instance.GetTower(GetSelectLocation());

        if (tower != null)
        {
            IReceiveable target = tower as IReceiveable;
            if (target != null)
            {
                target.Receive(conveyObject);
            }
        }
        else
        {
            switch (conveyObject.type)
            {
            case ProjectileType.RawMaterial:
                if (GridManager.instance.GetFloor(GetSelectLocation()).floorType == GFloor.FloorType.the_enemy_path)
                {
                    break;
                }
                Build(GetSelectLocation(), ColorMixing.instance.AnalysisColor(conveyObject.Color));
                Destroy(conveyObject.gameObject);
                break;

            case ProjectileType.BuildingMaterial:
                break;

            case ProjectileType.NormalBullet:
                break;

            case ProjectileType.BlueBullet:
                break;

            case ProjectileType.RedBullet:
                break;

            case ProjectileType.Text:
                Transform target = GridManager.instance.InstansiateChessAt(PrefabManager.instance.textPrefab, GetSelectLocation()).GetComponent <Transform>();
                target.transform.position             = target.transform.position + new Vector3(0, 0.05f, 0);
                target.GetComponent <TextMesh>().text = conveyObject.gameObject.GetComponent <TextMesh>().text;

                target.GetComponent <LevelNumber>().levelNumber    = conveyObject.GetComponent <LevelNumber>().levelNumber;
                target.GetComponent <LevelNumber>().targetLocation = conveyObject.GetComponent <LevelNumber>().targetLocation;

                Destroy(conveyObject.gameObject);
                break;
            }
        }
    }
コード例 #2
0
ファイル: Player.cs プロジェクト: vegechick123/GridPackage
 //void FixedUpdate()
 //{    //取消弹性
 //    this.GetComponent<Rigidbody>().velocity = new Vector3(0, 0, 0);
 //}
 private void Update()
 {
     ////postion锁定
     //foreach (Transform _transform in GetAllChilds())
     //{
     //    _transform.localPosition = new Vector3(0, _transform.localPosition.y, 0);
     //}
     if (playerInput.Dis > 0.02f)
     {
         //旋转
         Vector3 targetForward = Vector3.Slerp(this.transform.forward,
                                               playerInput.Dright * DirTran.right + playerInput.Dup * DirTran.forward, 0.4f);
         this.transform.forward = targetForward;
         //位移
         velocity = this.transform.forward * runSpeed;
         this.transform.position += velocity * Time.deltaTime;
         //location更新
         location = GridManager.instance.Vector3ToVector2Int(this.transform.position);
         //Direction朝向更新
         if (this.transform.eulerAngles.y >= 315 || this.transform.eulerAngles.y < 45)
         {
             direction = Direction.up;
         }
         else if (this.transform.eulerAngles.y >= 45 && this.transform.eulerAngles.y < 135)
         {
             direction = Direction.right;
         }
         else if (this.transform.eulerAngles.y >= 135 && this.transform.eulerAngles.y < 225)
         {
             direction = Direction.down;
         }
         else if (this.transform.eulerAngles.y >= 225 && this.transform.eulerAngles.y < 315)
         {
             direction = Direction.left;
         }
     }
     HighLightHandle();
     if (Input.GetKeyDown(playerInput.KeyPickUp))
     {
         GTower targetTower = GridManager.instance.GetTower(GetSelectLocation());
         if (targetTower != null)
         {
             targetTower.BePickUp(this);
         }
         else
         {
             GResource targetResource = GridManager.instance.GetResources(GetSelectLocation());
             if (targetResource != null)
             {
                 targetResource.BePickUp(this);
             }
         }
     }
     if (Input.GetKeyDown(playerInput.KeyPutDown))
     {
         if (conveyObject != null)
         {
             Putdown();
         }
     }
     if (Input.GetKeyDown(playerInput.KeyRotation))
     {
         Vector2Int select = GetSelectLocation();
         Debug.Log(select);
         GChess chess = GridManager.instance.GetTower(select);
         if (chess)
         {
             Debug.Log(chess);
             if (chess.chessType == ChessType.shooterTower)
             {
                 chess.GetComponent <GShooterTower>().direction = chess.GetComponent <GShooterTower>().direction.ClockwiseNext();
             }
         }
     }
     //更新动画
     animator.SetBool("isConvey", conveyObject != null);
 }