C# 如何使预制件与之完全反向(180度)';什么是繁殖点?统一2D

C# 如何使预制件与之完全反向(180度)';什么是繁殖点?统一2D,c#,unity3d,game-development,C#,Unity3d,Game Development,所以我制作了一个小的侧滚器,它使用一个预置来产生子弹。 我的问题是它只射向一边。。。右边。 我也需要它向左边开火。我已经做了一个变量,看看玩家是向右看还是向左看 我试着把速度调到-20,我试着把它在Z轴上旋转180度。我测试了子弹脚本是否从玩家移动脚本中提取了变化,它确实如此 玩家动作脚本 使用系统集合; 使用System.Collections.Generic; 使用UnityEngine; 公共类玩家运动:单一行为 { 公共游戏对象子弹; 私人刚体; 私人浮动速度=15; 私人楼宇朝向权;

所以我制作了一个小的侧滚器,它使用一个预置来产生子弹。 我的问题是它只射向一边。。。右边。
我也需要它向左边开火。我已经做了一个变量,看看玩家是向右看还是向左看

我试着把速度调到-20,我试着把它在Z轴上旋转180度。我测试了子弹脚本是否从玩家移动脚本中提取了变化,它确实如此

玩家动作脚本

使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类玩家运动:单一行为
{
公共游戏对象子弹;
私人刚体;
私人浮动速度=15;
私人楼宇朝向权;
私有布尔地面=假;
私人浮动跳跃=23;
//在第一帧更新之前调用Start
void Start()
{
facingRight=正确;
myRigidbody=GetComponent();
}
//每帧调用一次更新
void FixedUpdate()
{
float horizontal=Input.GetAxis(“水平”);
运动(水平);
翻转(水平);
if(Input.GetKey(“w”))
{
中频(接地)
{
GetComponent().velocity=新矢量2(GetComponent().velocity.x,跳跃);
}
}
if(facingRight==假)
{
bullet.GetComponent().left=true;
}
如果(facingRight==真)
{
bullet.GetComponent().left=false;
}
}
void OnTiggerEnter2D()
{
地面=真实;
}
void OnTriggerExit2D()
{
地面=假;
}
私人空间移动(水平浮动)
{
myRigidbody.velocity=新矢量2(水平*速度,myRigidbody.velocity.y);
}
专用空心翻转(水平浮动)
{
如果(水平>0&&!朝向右侧| |水平<0&&朝向右侧)
{
facingRight=!facingRight;
Vector3 theScale=transform.localScale;
比例x*=-1;
transform.localScale=比例;
}
}
}
武器脚本

使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类武器:单一行为
{
//在第一帧更新之前调用Start
公共财产权;
公共变换火点;
公共游戏对象公告;
//每帧调用一次更新
无效更新()
{
if(Input.GetKeyDown(“空格”))
{
Log(“哦,好的”);
射击();
}
}
空射()
{
实例化(BulletPrefact、firepointR.position、firepointR.rotation);
}
}
子弹脚本

使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类子弹:单一行为
{
公共布尔左;
公共浮动速度=20;
公共刚体2d rb;
//在第一帧更新之前调用Start
void Start()
{
rb.velocity=transform.right*速度;
}
//每帧调用一次更新
void FixedUpdate()
{
Log(速度);
如果(左==假)
{
旋转(0,0,180);
}
}
}

正如我之前所说,我需要我的子弹(预制件)朝相反的方向移动,但无论我现在做什么,它都会朝着正确的方向移动。

扩展我的评论:


你试过反转速度吗

rb.velocity = -(transform.right * speed);
注意:在某些情况下,使用负浮点不会返回与正结果相反的结果。但是,在本例中,它可以正常工作

我想这也会起作用(而且可能是正确的做法):


扩展我的评论:


你试过反转速度吗

rb.velocity = -(transform.right * speed);
注意:在某些情况下,使用负浮点不会返回与正结果相反的结果。但是,在本例中,它可以正常工作

我想这也会起作用(而且可能是正确的做法):


你试过反转速度吗<代码>rb.velocity=-(transform.right*速度)@已修复问题的标记!谢谢@马克:你能不能把它作为答案提交,这样这个问题就不会出现在没有答案的列表中?谢谢你试过反转速度吗<代码>rb.velocity=-(transform.right*速度)@已修复问题的标记!谢谢@马克:你能不能把它作为答案提交,这样这个问题就不会出现在没有答案的列表中?谢谢