Unity实现原始的发射子弹效果

  • 1 创建一个炮塔,按下空格-坦克会发射一个小球
  • 2.小球会掉在地上滚下来-添加组件
  • 3 间隔几秒后自动销毁
  • 程序逻辑:1.在场景中创建一个炮塔\子弹拿到代码里的变量里
  • 程序逻辑: 2.if语句检测用户有没有按下空格
  • 程序逻辑: 3.在炮塔坐标的位置,克隆子弹
  • 程序逻辑: 4.接着让子弹用translate()往Y轴方向移动
  • 程序逻辑: 5 接着让子弹添加Rigibody组件

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class RoleControl : MonoBehaviour

{

程序逻辑:1.在场景中创建一个炮塔\子弹拿到代码里的变量里

//程序逻辑: 2.if语句检测用户有没有按下空格

//程序逻辑: 3.在炮塔坐标的位置,克隆子弹

//程序逻辑: 4.接着让子弹用translate()往Y轴方向移动

//程序逻辑: 5 接着让子弹添加Rigibody组件

GameObject Tanke001;

GameObject Zidanmuban001;

GameObject CloneFather;

GameObject TempObj;//这个变量用来存储临时克隆的物体子弹

public float speed = 1;

void Start()

{

Tanke001 = GameObject.Find("MainRole");

Zidanmuban001 = GameObject.Find("ZidanMuban");

CloneFather = GameObject.FindGameObjectWithTag("FatherClone");

}

//

void Update()

{

if (Input.GetKeyDown(KeyCode.Space)||Input.GetMouseButtonDown(0))

{

//用户按下了鼠标左键或者空格 克隆

CloneZIdan();

}

if (TempObj!=null)

{

TempObj.transform.Translate(new Vector3(0, 1* speed*Time.deltaTime, 0));

}

GameObject.Destroy(TempObj, 3f);

}

void CloneZIdan()//用来发射

{

Debug.Log("这里去发射子弹");

TempObj = GameObject.Instantiate(Zidanmuban001, new Vector3(Tanke001.transform.position.x, Tanke001.transform.position.y, Tanke001.transform.position.z+1),Quaternion.Euler(90,0,0), CloneFather.transform);

TempObj.AddComponent<Rigidbody>();

}

}

相关推荐
百度搜知知学社1 分钟前
抖音双模块架构:兼容全安卓版本并支持登录
android·架构·安卓·登录·兼容性·抖音
文阿花10 分钟前
Echarts实现柱状3D扇形图
android·3d·echarts
故渊at23 分钟前
第六板块:Android 安全与权限体系 | 第十九篇:SELinux 强制访问控制与沙箱机制
android·安全·访问控制·selinux·权限体系·沙箱机制
千里马学框架27 分钟前
重学Perfetto浏览器在线抓取trace及高频sql分享
android·sql·智能手机·架构·aaos·perfetto·车机
plainGeekDev37 分钟前
批量写入 → Room 事务
android·java·kotlin
杉氧1 小时前
Kotlin 协程深度解析①:内核解密——揭秘 suspend 挂起函数的灵魂
android·kotlin
以身入局1 小时前
ViewStub 讲解
android
故渊at1 小时前
第六板块:Android 安全与权限体系 | 第二十篇:应用签名、权限机制与 PackageManagerService 的安全校验
android·安全·权限体系·应用签名
朝星1 小时前
Android开发[11]:启动优化
android·kotlin