【Unity3D-Mirror多人坦克大战】子弹及其开火位置的生成、子弹开火逻辑(四)
目录
15、子弹开火的逻辑
16、子弹开火位置的设置
17、场景中子弹生成
测试
15、子弹开火的逻辑
public class Player : NetworkBehaviour
{……private float nextFire; //下一次开火的时间public float fireRate = 0.75f; //两次开火至少相隔的时间public Transform shotPos; // 开火位置……private void FixedUpdate(){……//开火if (Input.GetButton("Fire1")){if (Time.time > nextFire){nextFire = Time.time + fireRate;CmdShoot((short) (shotPos.position.x * 10), (short) (shotPos.position.z * 10));}}}……[Command]void CmdShoot(short xPos, short zPos){Vector3 shotCenter =Vector3.Lerp(shotPos.position, new Vector3(xPos / 10f, shotPos.position.y, zPos / 10f), 0.6f);// 创建子弹,并同步到客户端// 所有客户端进行特效显示}[ClientRpc]protected void RpcOnShot(){// 显示特效}
}
16、子弹开火位置的设置
17、场景中子弹生成
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Mirror;
public class Bullet : NetworkBehaviour
{public float speed = 15;private Rigidbody myRigidbody;private void Awake(){myRigidbody = GetComponent<Rigidbody>();}private void Start(){myRigidbody.velocity = speed * transform.forward;}
}
public class Player : NetworkBehaviour
{……public GameObject BulletPrefab; //………………[Command]void CmdShoot(short xPos, short zPos){Vector3 shotCenter =Vector3.Lerp(shotPos.position, new Vector3(xPos / 10f, shotPos.position.y, zPos / 10f), 0.6f);// 创建子弹,并同步到客户端GameObject obj = Instantiate(BulletPrefab, shotCenter, Quaternion.Euler(0, turret.eulerAngles.y, 0)); //把预制体实例化出子弹NetworkServer.Spawn(obj,obj.GetComponent<NetworkIdentity>().assetId); // 在服务器端生成,并同步// 所有客户端进行特效显示RpcOnShot();}[ClientRpc]protected void RpcOnShot(){// 显示特效}
}
测试
【Unity3D-Mirror多人坦克大战】子弹及其开火位置的生成、子弹开火逻辑(四)相关推荐
- Unity3d实现双人网络坦克大战
效果预览 https://pan.baidu.com/s/1w3RccGs7FueDopwZTaPrpA#list/path=%2F 资源准备 所需要的资源和上周的AI自动寻路一样: 使用NavMes ...
- Unity3d 机试题目 坦克大战总结
面试的时候,先是正常的面试,然后是笔试,最后是机试.算好一切准备得还算完善,就是机试题目坦克大战,里面会有几个要点老是忘记.在这里首先要郑重感谢我不知道在哪里看到的博客以及他的作者,正好解决了我的疑惑 ...
- 【Unity3D-Mirror多人坦克大战】坦克生成、移动和摄像机跟随(二)
目录 7.创建角色 8.在坦克上面创建血条 9.为游戏对象添加NetworkTransform 10.角色移动 11.摄像机相随 12.炮台移动 测试 7.创建角色 新建一个立方体Player,取消它 ...
- Unity3D项目之《坦克大战》
2016年2月4日11:00:27 Tank_Project_Log 1.新建工程,导入资源,新建Scenes文件夹,保存该场景进该文件夹 2.删除场景中的默认灯光 2.1 再把Prefab里的Lev ...
- 【Unity3D-Mirror多人坦克大战】生命盾牌物品的创建、物品动画的创建(九)
目录 31.物品类基础配置 32.生命盾牌物品创建 33.创建动画 测试 31.物品类基础配置 在ObjectSpawner.cs添加代码 using System.Collections; us ...
- 双人坦克大战 - Unity3D
一个简单的双人坦克游戏(3D). GitHub https://github.com/SSGamble/TanksGame 文章目录 总结 创建场景 创建坦克 添加脚本控制坦克移动 双人操作坦克 控制 ...
- java游戏牛仔炮筒,《Java小游戏实现》:坦克大战(续2)
<Java小游戏实现>:坦克大战(续2) 相关博文: 博文<Java小游戏实现>:坦克大战(续1)中已经实现到了坦克可以发射一颗子弹了.这篇博文在此基础上继续实现更多的功能. ...
- 坦克大战java(章程)
坦克大战 ** 目录 坦克大战(一):画出我方坦克与敌方坦克 坦克大战(二):写出子弹,画出子弹以及坦克,还有背景 //最近有点忙,博客没时间更新,需要坦克大战源码可以私聊我,过段时间再更. 坦克大战 ...
- JAVA坦克大战TankBattle
要完成java大作业,不知为何就想做一个坦克大战. 功能是逐步加上去的.一开始就是几个IconImage在一个Frame中移动,后来逐渐加入线程.碰撞检测.导弹发射.击中检测.背景音乐.音效.血量控制 ...
- 以JLable特性实现坦克大战(1)
以AWT特性简单写出坦克大战(1) 在学习java图形界面的时候我发现JLabel的特性可以完美避开图片闪烁问题,由此我以JLabel(javax.swing.JLabel)为核心完成了坦克大战的实现 ...
最新文章
- 从终端运行React Native App时出错(iOS)
- dev chartcontrol获取x y轴的值_终于,奔驰强势接手了腾势X
- JqGrid 列时间格式化
- C语言形参和实参的区别
- IIS 6.0 访问aspx页面出现404错误
- apipost脚本使用二
- [凯立德]2014秋季版C1204-C7K05-3321J0L(SP2)WinCE版
- Bailian2709 求出e的值【数列求和】(POJ NOI0105-35)
- May the Sunshine be with you!
- SpringBoot系列(1):Spring和SpringBoot常用注解总结
- 需求分析和系统分析的区别
- 软件架构风格整理(1 数据流风格)
- Java封装、继承、多态、super杂糅在一起的小练习,公司雇员员工工资问题(Employee),练习扩展:创建一个Employee数组,分别创建不同的Employee对象,并打印某个月的工资
- 多变量微积分笔记4——全微分与链式法则
- powerbi服务器无法显示报表,Power BI 报表中的页面显示设置 - Power BI | Microsoft Docs...
- ANN之乘积量化PQ
- 从网卡中截获sql server的sql语句
- Linux终端设备文件介绍
- centos7 yum安装yarn
- java五子棋棋盘_Java系列——五子棋的实现
热门文章
- MyBatis学习笔记之三
- CET-4 week9 阅读 写译
- pat basic 1082 射击比赛
- Homestead GuestAdditions seems to be installed (6.0.6) correctly, but not running
- 最新论文阅读(17)--Pyramidal RoR for Image Classification
- Oracle11g64位安装教程
- Linux下Oracle11G64位安装流程
- win32 窗口 绘制矩形
- 简单的CSS3动画案例——奔跑的熊哥
- Java获取Excel表格的真实行数