Unity坦克大战开发全流程——游戏场景——主玩家相关——基础移动旋转摄像机跟随等

游戏——主玩家相关——基础移动旋转摄像机跟随等

先创建一个玩家类

控制玩家的移动

然后在父类再抽象一个炮台

控制炮台旋转

控制开火

重写死亡

重写受伤

摄像机跟随

将摄像机拖拽至炮台下让其成为炮台的子对象,并调整其参数即可

直到当前PlayerObj的代码为:

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

public class PlayerObj : TankBaseObj
{
    //关联玩家装备的武器
    public WeaponObj nowWeapon;
    //关联的武器父对象位置
    public Transform weaponPos;

    void Update()
    {
        //控制玩家前后移动
        transform.Translate(Input.GetAxis("Vertical") * Vector3.forward * moveSpeed * Time.deltaTime);
        //控制玩家左右旋转
        transform.Rotate(Input.GetAxis("Horizontal") * Vector3.up * turnSpeed * Time.deltaTime);
        //控制炮台的旋转
        tankHead.transform.Rotate(Input.GetAxis("Mouse X") * Vector3.up * headTurnSpeed * Time.deltaTime);
        //控制开火
        if (Input.GetMouseButtonDown(0))
        {
            Fire();
        }
    }

    public override void Fire()
    {
        if (nowWeapon != null)
        {
            nowWeapon.Fire();
        }
    }

    public override void Dead()
    {
        Time.timeScale = 0;
        DeadPanel.Instance.ShowMe();
    }

    public override void Wound(TankBaseObj other)
    {
        base.Wound(other);
        //更新血条
        GamePanel.Instance.UpdateHP(maxHP, hp);
    }

    //切换武器
    public void ChangeWeapon(GameObject weapon)
    {
        //如果玩家已经装备了武器,那就先销毁它
        if (nowWeapon != null)
        {
            Destroy(nowWeapon.gameObject);
            nowWeapon = null;
        }
        //实例化这个武器
        GameObject weaponObj = Instantiate(weapon, weaponPos, false);
        nowWeapon = weaponObj.GetComponent<WeaponObj>();
        //设置这个武器的拥有者
        nowWeapon.SetFather(this);
    }
}

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值