Fire Balls 05——坦克和子弹的制作以及炮台发射子弹
2024-08-31 01:29:24
版权申明:
- 本文原创首发于以下网站:
- 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123
- 优梦创客的官方博客:https://91make.top
- 优梦创客的游戏讲堂:https://91make.ke.qq.com
- 『优梦创客』的微信公众号:umaketop
- 您可以自由转载,但必须加入完整的版权声明
目标:
- 坦克和子弹预制体的制作
- 脚本编写子弹的发射
坦克和子弹预制体的制作
- 首先我们先新建一个空的GameObject重命名为Tank然后在其子节点创建一个Cube调整至合适的大小,调整完成后我们复制一个同样的Cube并把它旋转90度,调整至如下图所示
- 这样我们的坦克便制作完成了,然后我们在场景中新建一个Sphere并重命名为Projectile并把我们的子弹调整至合适的大小,添加上Rigidbody,并把我们制作完成的物体保存到文件夹下就可以了
脚本编写子弹的发射
- 首先我们打开Tank的预制体并且新建一个空的Ganmeobject改名为ShotPos并把位置调整至合适的坐标
- 作为我们炮弹的发射点,然后我们在Tank下新建一个脚本命名为Tank并打开编写如下代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Tank : MonoBehaviour
{
public GameObject projPrefab; // 要发射的子弹的预制体
public Transform shotPos; // 要发射的子弹的位置
private float lastFireTime; // 上一次发射的时间
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetButton("Fire1")
&& Time.time - lastFireTime > 0.2f)
{
// 实例化(从预制体克隆)一个子弹
var transProj = Instantiate(projPrefab).transform;
// 设置子弹的位置在坦克设定好的炮口位置
transProj.SetParent(this.transform, false);
transProj.position = shotPos.position;
Vector3 v = shotPos.forward * 100;
transProj.GetComponent<Rigidbody>().AddForce(v, ForceMode.Impulse);
Destroy(transProj.gameObject, 2f);
lastFireTime = Time.time;
}
}
}
- 然后保存并关闭我们的脚本,最后把我们的刚刚制作的预制体和ShotPos拖给脚本上的Public变量。
- 最后打开游戏我们按下鼠标左键就能发射炮弹啦!
最新文章
- [LeetCode] Populating Next Right Pointers in Each Node 每个节点的右向指针
- CF724B. Batch Sort[枚举]
- 解决table不能换行的问题与CSS之自动换行总结
- Leetcode: Find Leaves of Binary Tree
- 制作.frameWork的最全最真实的解决办法
- jmeter测试手机app
- python-gdb
- IDEA - Project files cannot be watched (are they under network mount?)
- ViewDragHelper的使用
- (WinForm)文件夹状态监控,最小化到托盘,开机自启动
- CF(427D-Match &;amp; Catch)后缀数组应用
- 【转义字符】HTML 字符实体&;lt; &;gt: &;amp;
- shell编程之BASH变量(2)
- Solr 17 - Solr的时间为什么比本地少8小时 (附修改方法)
- EntityFramework Core是否可以映射私有属性呢?了解一下。
- python nose测试框架全面介绍十---用例的跳过
- Android SDK版本号与API Level 的对应关系-转
- [LeetCode] 176. Second Highest Salary_Easy tag: SQL
- C# 中的集合(Array/ArrayList/List<;T>;/HashTable/Dictionary)
- 用CAShapeLayer写股市K线图动画效果
热门文章
- springcloud-熔断监控Hystrix Dashboard和Turbine
- 【iOS】获取应用程序本地路径
- x32下PsSetLoadImageNotifyRoutine的逆向
- redis分布式锁&;队列应用
- unimrcp-voice-activity语音检测
- 初试kafka消息队列中间件二(采用java代码收发消息)
- pull解析案例
- 【KakaJSON手册】05_JSON转Model_05_动态模型
- 简述关于ASP.NET&#160;MVC与.NET CORE 的区别
- Linux与Unix到底有什么不同?