Unity 2018安装备忘单

创建一个新项目

这适用于2D项目。

进口资产

单击并将包含所需资产的文件夹拖到Unity项目的Assets文件夹中。 您也可以单独将资产拖到项目中,但是我发现首先从一些默认的Sprite和事物开始,然后再使用特定的Sprite对其进行更新,然后将未使用的Sprite进一步删除,可以更快地进行开发。

变更决议

如果需要更改或添加特定的分辨率或宽高比,可以在此菜单中进行。

添加背景

将图像拖放到场景中。 使Z位置大约为5 ,以使其始终在背景中。

创建画布

在“层次结构”中右键单击,在“ UI”下单击“画布”。

创建播放器对象

右键单击“层次结构”,然后单击“创建空白”。 检查新的空游戏对象并重置变换(右键单击“变换”>“重置”)。

添加组件,Sprite Renderer。

单击并将所需的精灵从您的资产中拖动到Sprite …占位符中。 您应该看到Sprite出现在场景中。

为玩家增加动作

将组件添加到播放器对象。 添加新的脚本,将其称为Player并添加Move方法。

 私有void Move() 
{
float deltaX = Input.GetAxis(“ Horizo​​ntal”)* Time.deltaTime * moveSpeed;
var newXPos = transform.position.x + deltaX;

float deltaY = Input.GetAxis(“ Vertical”)* Time.deltaTime * moveSpeed;

var newYPos = transform.position.y + deltaY;
transform.position = new Vector2(newXPos,newYPos);
}

使用Time.deltaTime可使游戏的帧速率在设备之间保持一致。 您可以添加moveSpeed变量以更好地控制Player的移动速度。 添加以下内容以使变量在检查器中可用:

  //在Player.cs中 
...
[SerializeField] float moveSpeed = 10f;
...

查看输入

编辑>项目设置>输入

在脚本中,可以使用Input.GetAxis(“Horizontal”)而不是诸如GetKeyDown之类的GetKeyDown来包含更多控件。 这里有两个“水平轴”和“垂直轴”,一个用于键盘(箭头键和wasd),另一个用于操纵杆控制器。 通过使用轴,您无需指定要使用的键或控制器。

输入文件

限制球员运动

ViewPortToWorldPoint()是一种设置播放器运动边界的动态方法

然后,在Update方法中,可以使用Mathf.Clamp从字面上将一些约束钳位到X和Y Player位置。

  var newXPos = Mathf.Clamp( 
transform.position.x + deltaX,
xMin,
最大值
);

我们在Start方法中定义最小和最大坐标。

 无效开始(){ 
SetUpMoveBoundaries();
}

由于Player对象的枢轴点位于其中心,因此请定义一个辅助方法和padding 。 您不希望对象的边缘离开屏幕。

  [SerializeField]浮点填充= 1f; 
  yMin; 
浮动yMax;
...
 私人void SetUpMoveBoundaries() 
{
摄影机游戏摄影机= Camera.main;
xMin = gameCamera.ViewportToWorldPoint(
新的Vector3(0,0,0)
).x +填充;
xMax = gameCamera.ViewportToWorldPoint(
新的Vector3(1、0、0)
).x-填充;
yMin = gameCamera.ViewportToWorldPoint(
新的Vector3(0,0,0)
).y + padding;
yMax = gameCamera.ViewportToWorldPoint(
新的Vector3(0,1,0)
).y-填充;
}

更新后的Move方法将类似于:

 私有void Move() 
{
float deltaX = Input.GetAxis(“ Horizo​​ntal”)* Time.deltaTime * moveSpeed;
float deltaY = Input.GetAxis(“ Vertical”)* Time.deltaTime * moveSpeed;

var newXPos = Mathf.Clamp(transform.position.x + deltaX,xMin,xMax);
var newYPos = Mathf.Clamp(transform.position.y + deltaY,yMin,yMax);
transform.position = new Vector2(newXPos,newYPos);
}

识别特征区域

有了背景,一个Player对象只能随Camera一起移动,现在您需要确定游戏还需要其他哪些功能。 它可能是玩家攻击,玩家健康,与其他物体,敌人或其他东西的交互。 但这是一个很好的起点。