예제 #1
0
    /// <summary>
    /// 初始化移动
    /// </summary>
    /// <param name="cube"></param>
    private void InitMoveDir(Cube cube)
    {
        cube.CanMove = true;
        if (lastMoveDir == MoveEnumDirEnum.XDir)
        {
            lastMoveDir = MoveEnumDirEnum.SubZDir;
        }
        else
        {
            lastMoveDir = MoveEnumDirEnum.XDir;
        }

        switch (lastMoveDir)
        {
        //x正方向 右下
        case MoveEnumDirEnum.XDir:
            cube.SetInitData(lastCenter + new Vector3(-GameConfig.maxXCanMove, GameConfig.goY, 0), lastSize, lastMoveSpeed, MoveEnumDirEnum.XDir);
            break;

        //z负方向 左下
        case MoveEnumDirEnum.SubZDir:
            cube.SetInitData(lastCenter + new Vector3(0, GameConfig.goY, GameConfig.maxZCanMove), lastSize, lastMoveSpeed, MoveEnumDirEnum.SubZDir);
            break;
        }
    }
예제 #2
0
 /// <summary>
 /// 初始化数据
 /// </summary>
 /// <param name="pos"></param>
 /// <param name="size"></param>
 /// <param name="moveSpeed"></param>
 /// <param name="moveEnumDirEnum"></param>
 public void SetInitData(Vector3 pos, Vector3 size, float moveSpeed, MoveEnumDirEnum moveEnumDirEnum)
 {
     this.gameObject.transform.localPosition = pos;
     this.gameObject.transform.localScale    = size;
     this.moveSpeed  = moveSpeed;
     this.NowMoveDir = moveEnumDirEnum;
 }
예제 #3
0
    private void Update()
    {
        if (canMove)
        {
            switch (NowMoveDir)
            {
            //x轴负移动
            case MoveEnumDirEnum.SubXDir:
                gameObject.transform.localPosition += Vector3.left * moveSpeed * Time.deltaTime;
                if (gameObject.transform.localPosition.x <= -GameConfig.maxXCanMove)
                {
                    NowMoveDir = MoveEnumDirEnum.XDir;
                }
                break;

            //z负移动
            case MoveEnumDirEnum.SubZDir:
                gameObject.transform.localPosition += Vector3.back * moveSpeed * Time.deltaTime;
                if (gameObject.transform.localPosition.z <= -GameConfig.maxZCanMove)
                {
                    NowMoveDir = MoveEnumDirEnum.ZDir;
                }
                break;

            //x正移动
            case MoveEnumDirEnum.XDir:
                gameObject.transform.localPosition += Vector3.right * moveSpeed * Time.deltaTime;
                if (gameObject.transform.localPosition.x >= GameConfig.maxXCanMove)
                {
                    NowMoveDir = MoveEnumDirEnum.SubXDir;
                }
                break;

            //z正移动
            case MoveEnumDirEnum.ZDir:
                gameObject.transform.localPosition += Vector3.forward * moveSpeed * Time.deltaTime;
                if (gameObject.transform.localPosition.z >= GameConfig.maxZCanMove)
                {
                    NowMoveDir = MoveEnumDirEnum.SubZDir;
                }
                break;
            }
        }

        if (canDownMove)
        {
            gameObject.transform.localPosition += Vector3.down * downMoveSpeed * Time.deltaTime;
            if (gameObject.transform.localPosition.y <= -10.0f)
            {
                canDownMove = false;
                gameObject.SetActive(false);
                Destroy(gameObject);
            }
        }
    }
예제 #4
0
 /// <summary>
 /// 清空已经存在于场景中的物体
 /// </summary>
 private void ClearTowerGo()
 {
     lastMoveDir = MoveEnumDirEnum.XDir;
     lastCenter  = Vector3.zero;
     lastSize    = new Vector3(GameConfig.goX, GameConfig.goY, GameConfig.goZ);
     for (int i = 0; i < mToweredGoList.Count; i++)
     {
         DestroyImmediate(mToweredGoList[i]);
         mToweredGoList[i] = null;
     }
     mToweredGoList.Clear();
     for (int i = 0; i < mDisGoList.Count; i++)
     {
         if (mDisGoList[i] != null)
         {
             DestroyImmediate(mDisGoList[i]);
             mDisGoList[i] = null;
         }
     }
     mDisGoList.Clear();
     EventManager.CallAction(Events.ClearTowerGo, null);
 }