C# 如何在unity中制作2D实时策略摄像机控制器?
我已经找了很多年关于如何在2D中为Unity制作实时策略相机。我的意思是,你应该用W,A,S,D来控制相机,无论我在哪里看到它都是3D的。我一直在试着写我自己的脚本,但相机从来没有工作,我迫切需要帮助。我已经尝试了很多,但是作为Unity的初学者,我真的需要帮助。如果你能告诉我如何开始这件事,我会很高兴的C# 如何在unity中制作2D实时策略摄像机控制器?,c#,unity3d,C#,Unity3d,我已经找了很多年关于如何在2D中为Unity制作实时策略相机。我的意思是,你应该用W,A,S,D来控制相机,无论我在哪里看到它都是3D的。我一直在试着写我自己的脚本,但相机从来没有工作,我迫切需要帮助。我已经尝试了很多,但是作为Unity的初学者,我真的需要帮助。如果你能告诉我如何开始这件事,我会很高兴的 你认为我应该使用武力方法还是应该使用unity已经安装的另一种方法?我也尝试过使用向量,但当我环顾四周时,每个人都在使用向量3,它只用于3D统一 您可以将单个脚本附加到相机。 public f
你认为我应该使用武力方法还是应该使用unity已经安装的另一种方法?我也尝试过使用向量,但当我环顾四周时,每个人都在使用向量3,它只用于3D统一 您可以将单个脚本附加到相机。
public float speed =10.0f;
void Update()
{
Vector3 a = transform.position
if(Input.GetKeyDown("W"))
{
a.position.y += speed *Time.deltaTime
}
if(Input.GetKeyDown("S"))
{
a.position.y -= speed *Time.deltaTime
}
transform.position =a;
}
你可以根据需要调整速度。您可以对其他键执行此操作。注:按下键时调用GetKeyDown。希望这有帮助。使用
Vector3 direction=new Vector3()创建一个方向向量代码>
根据关键点在所需方向操纵向量:
if (Input.GetKey(KeyCode.A))
direction += Vector3.left;
添加“内置”矢量3.left将使矢量的方向指向左侧,您可以在其上添加其他关键点以获得最终方向
然后,您可以使用transform.Translate()
移动游戏对象(在本例中,您将其连接到了您的相机),方法是传递基于按键作为参数计算的方向。然后相乘得到方向*速度*时间.deltaTime
不要在你的相机上使用物理学。只需直接移动变换。Vector2是Vector3的2D等价物。在任何你想使用Vector3的地方,只要使用Vector2就行了(当然没有z参数),请提供你当前的实现,这样我就可以改进它了。这甚至可以编译吗Vector3
对于以float
作为参数的operator+
没有任何重载错误是因为我直接将速度添加到transform.position。我已经编辑了代码,请立即尝试。这仍然不起作用,因为tranform.position.y
是该值的副本,而不是对它的引用