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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unity耘上飞农

难题的解决使成本节约,求打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值