2d 空物体实例化发射子弹 围绕旋转

本文介绍了一个使用Unity实现的2D射击游戏中枪械射击逻辑的脚本代码。该脚本通过检测玩家输入来触发射击动画,并根据玩家朝向实例化子弹并设置其速度。此外,还提供了一个简单的旋转围绕目标的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using UnityEngine;
using System.Collections;


public class Gun : MonoBehaviour
{
public Rigidbody2D rocket;// Prefab of the rocket.
public float speed = 20f;// The speed the rocket will fire at.




private PlayerControl playerCtrl;// Reference to the PlayerControl script.
private Animator anim;// Reference to the Animator component.




void Awake()
{
// Setting up the references.
anim = transform.root.gameObject.GetComponent<Animator>();
playerCtrl = transform.root.GetComponent<PlayerControl>();
}




void Update ()
{
// If the fire button is pressed...
if(Input.GetButtonDown("Fire1"))
{
// ... set the animator Shoot trigger parameter and play the audioclip.
anim.SetTrigger("Shoot");
audio.Play();


// If the player is facing right...
if(playerCtrl.facingRight)
{
// ... instantiate the rocket facing right and set it's velocity to the right. 
Rigidbody2D bulletInstance = Instantiate(rocket, transform.position, Quaternion.Euler(new Vector3(0,0,0))) as Rigidbody2D;
bulletInstance.velocity = new Vector2(speed, 0);
}
else
{
// Otherwise instantiate the rocket facing left and set it's velocity to the left.
Rigidbody2D bulletInstance = Instantiate(rocket, transform.position, Quaternion.Euler(new Vector3(0,0,180f))) as Rigidbody2D;
bulletInstance.velocity = new Vector2(-speed, 0);
}
}
}

}

——————————————————————————------

public class routter : MonoBehaviour {
public Transform tu1;
//public Transform tu2;

void Start () {
//tu1 = GameObject.Find("tupian2").transform;

}


void Update () {

transform.RotateAround (tu1.position, tu1.up, 40 * Time.deltaTime);
//tu2.transform.RotateAround (tu1.position, Vector2.up, 30 * Time.deltaTime);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值