2.地图的设置
Hierarchy -> 右键 -> 2D -> 建立Tilemap
creat -> Assets中建立Tile文件夹,存放地板信息。 右键 -> creat -> Tile -> 设置样式
分割地板: 选中一个地板样式,Sprite Mode设置为Multiple,如图,
选择Sprite Editor,打开后按图选择模式
选择切割成为3*3,切割完成后点击Apply应用。其他的地板进行相同的操作。
在Window中打开2D选项,选择Tile Palette
将Environment信息拖入Tile Palette中,更改图片像素信息。可以在unity中右键show in explorer,查看图片的详细属性,看图片的原像素并进行调整。192/3=64,所以将Pixels Per Unit(每单元的像素)更改为64并应用。
之后,将每个地板信息拖入到Tile Palette中,关于地板对人物的覆盖问题,可以在人物的inspector面板对sprite renderer的order in layer中调高其参数
导入树木,给树木添加碰撞信息。Add component中搜索Box Collider 2D
给人物添加刚体信息(grid...),和碰撞信息,调整人物的碰撞信息为腰部,这样不会在人物头顶到树木时无法通过。并将刚体信息中的gravity调整为0.
这时运行游戏发现人物碰撞到树木时会歪倒,于是添加下面的代码。
1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 5 public class unuseZ : MonoBehaviour 6 { 7 // Start is called before the first frame update 8 void Start() 9 { 10 11 } 12 13 // Update is called once per frame 14 void Update() 15 { 16 if (transform.localEulerAngles.z != 0) 17 { 18 float rotX = transform.localEulerAngles.x; 19 float rotY = transform.localEulerAngles.y; 20 transform.localEulerAngles = new Vector3(rotX, rotY, 0); 21 } 22 } 23 }
解决Ruby倾倒的另一个方法:把刚体控制中的z轴冻结(Freeze)
在Edit -> ProjectSettings -> graphics 中设置树木遮挡人物的属性,设置完成后ctrl+S保存,如图
将设置好的元素拖到 Assets -> Prefabs中来进行场景的设置。