Unity版本捕鱼游戏设计与实现

经典的射击小游戏:捕鱼达人

灵魂画师上线:

这是比较直白的草图也叫灵魂图,中间大方框周围的小方框代表鱼的生成位置,鱼通过这七个点来生成,并且游向屏幕中央,

来让玩家看到这种效果:

而单纯的只给鱼向前游是不行的,那样看着会很机械,所以要模仿鱼的左右移动,也就是弧线移动。

弧线移动的实现方式也很简单,说白了就是让他边扭着身子边直线跑,这样就是弧线移动了。

把这两个运动分解成可以复用的两个脚本,一个直线移动,一个掌控自身的增量旋转。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/*
作者:琦玉老师的二弟子
*/
namespace JumpAgent{

public class AutoMove : MonoBehaviour
{
        public float speed = 1f;
        public Vector3 Dir = Vector3.right;


        private void Update()
        {
            transform.Translate(Dir * speed * Time.deltaTime);
        }


    }//类

}//命名空间
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/*
作者:琦玉老师的二弟子
*/
namespace JumpAgent{

public class AutoRotate : MonoBehaviour
{
        public float speed = 10f;

        private void Update()
        {
            transform.Rotate(Vector3.forward, speed * Time.deltaTime);
        }


    }//类

}//命名空间

有了这两个脚本就能开始生成鱼了:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/*
作者:琦玉老师的二弟子
*/
namespace JumpAgent
{

    public class FishMaker : MonoBehaviour
    {
        public Transform[] genPositions;//鱼的生成位置
        public GameObject[] fishPrefabs;//所有鱼的预制体
        public Transform fishHolder;//收纳鱼的clone,防止散乱

        private void Start()
        {
            InvokeRepeating("MakeFish", 0, 0.1f);
        }

        void MakeFish()
        {
            //在什么位置生成什么鱼
            int genPosIndex = Random.Range(0, genPositions.Length);
            int fishPreIndex = Random.Range(0, fishPrefabs.Length);
            //获取鱼的最大生成数量和最大速度
            int maxNum = fishPrefabs[fishPreIndex].GetComponent<FishAttribute>().maxNuml;
            int maxSpeed = fishPrefabs[fishPreIndex].GetComponent<FishAttribute>().maxSpeed;
            //决定鱼的生成数量和速度
            int num = Random.Range
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值