Scroll View:(滚动视图)
参数:
Horizontal | 是否启用水平滚动 |
---|---|
Vertical | 是否启用垂直滚动 |
MovementType | 一共有三种模式,一种是Unrestricted、Elastic、Clamped,亲啊两种在桂东是可以强制内容保持在滚动巨型的边界内,另一种模式在内容到达滚动边缘时弹回内容 |
-Elasticity- | -这是弹性模式中使用的反弹量- |
Inertia | 如果设置,则拖动指针移动之后,内容见继续移动,反之不会移动 |
Deceleration | 设置Inertia的情况下,jiansulv(Deceleration)决定了内容停止移动的速度,速率为0时将立即停止速率为1的时候移动永不减速 |
-spacing- | -滚动条与视口之间的空间- |
其子对象中的Mesk组件:当有组件绘制在他后面,如果选中ShowMask Graphic 则在游戏界面是可以看到这个组件的,反之则不能看到
实例:创建一个ScrollView 在Content下面创建7个Image然后将Image的图片配置完成添加一个网格布局组件(AddComponent->Layout->Grid Layout)和内容适配器(ScrollRect)
UGUI布局管理
这部分市场被用作游戏奖励,由于事先不知道奖励的数量,但是依旧需要让奖励道具按照一定布局整齐的出现在整个界面中
1.水平布局(Horizontal Layout Group):选择Addcomponent->Layout Horizontal Layout Group 给游戏对象添加一个水平布局管理的组件其中参数如下
Padding | 布局边缘的偏移量 |
---|---|
Spacing | 布局内的元素间距 |
Child Alignment | 布局内元素的排列方式 |
-Control Child Size- | -是否空值子物体缩放- |
ChildForceExpend | 自适应宽和高 |
垂直布局的参数与水平大致类似
效果图如下
需要注意的是,尽管我们把Image当做空物体的子对象了,但是还是需要一块画布,如果不讲他们放在画布Canvas中,Image是不会显示出来的
布局元素
Layout Elment是布局元素组件,该组件厂厂用于管理带有布局组对象的子物体
其下参数意义如下
Ignore Layout | 是否受父本位置的影响 |
---|---|
MinWidth | 最小宽度 |
Preferred Width | 在分配额外可用高度之前此布局元素应该有的偏好高度 |
-Fiexible Width- | -此元素相对于同级的元素应有的额外可用高度的相对量- |
Layout Priority | 布局优先 |
内容适配器(Content Size Fitter)
在没有添加内容适配器之前,改变上一个例子的空物体的大小,Image的尺寸并没有什么界限,添加并且把Preferred Width 修改成300 ,这样之后,不管怎样修改空物体的尺寸,Image的最大尺寸为300,不会再发生变化
Aspect Ratio Fitter (宽高比适配器)
它可以调节高度,用来适应宽度,反之也是一样,给上一个例子中的空物体添加一个宽高比适配器,将Layout Element删掉
参数
AspectMode | 宽高适配模式,共有五种模式,使用者可以根据自己的需要使用相应的模式 |
---|---|
Aspect Ratio | 宽高比率 |
不规则按钮的碰撞检测
给不规则的按钮添加 Polygon Collider 2D ,这是一个多边形的碰撞器组件,点击碰撞组件的Edit Colider之后,可以改变碰撞组件的大小。
常用的输入对象
Touch对象:开发人员可以通过Touch对象来获取Anfroid、IOS平台上的触摸操作等消息
参数:
fingerID 手指的索引 | |
---|---|
Position | 手指触碰屏幕的位置 |
deltaPosition | 距离上次改变的距离增量 |
-deltaTime- | -自上次改变的时间增量- |
tapCount | 单击次数 |
Phase | 触碰状态 |
Input输入对象
参数:
mousePosition | 当前鼠标指针的像素坐标 |
---|---|
anykey | 当前是否有按键按下,若有返回true |
anykeydown | 用户单击任何键或者鼠标按钮,第一帧返回true |
-inputstring- | -返回键盘输入的字符串- |
touches | 返回当前触碰的列表 |
示例
if(Input.GetButtonDown("File1"))
{
Debug.Log("鼠标点击");
}
anykey与anykeydown的区别,前者当用户按下按钮,并且持续按下不松开的情况,它会不断地输出信息,而后者不管用户按键的时间是多久,他都只会输出一次消息
inputstring变量:需要注意的是其功能时返回键盘在这一帧中输入的字符串,并且返回的字符串值包含输入的ASCLL码中的字符,如果本次没有输入的话就会返回一个空字符串
Touchs变量
实例
int firgercount = 0;
foreach(Touch touch in Input.touches)
{
if(touch.phase == TouchPhase.Began)
{
Debug.Log("asd");
firgercount++;
}
}