U3D学习笔记(6)

来源:互联网 发布:zepto.js 点击事件 编辑:程序博客网 时间:2024/05/16 05:25


1.射线会在和第一个物体碰撞后消失,但物体必须带碰撞collider 组件,比如说按钮带一个collider(注意按钮的刚体的xy 代表按钮的长宽,而不是3d 里的xz ,可在3d 界面查看按钮的collider 体积) ,就可以吞没下面的移动响应,但是此时要把convas 设置在camera 模式下(即3d 世界里,但是就在主相机前面,给人还是在镜头最前面的感觉)
2.Ugui 按钮的disable 状态,就是button 的interactable (交互性)为真还是假
3.Character control 组件几点细节
 1.自带collider 了,又会与rigidbody 冲突,所以只要挂一个Character control 组件就能与带rigidbody 的物体碰撞了
 2.必须通过自带的move 来移动才会触发Characterhit 函数,通过普通的transform 平移无法碰撞!
 3.里面有一个类型可以获得碰撞方向!和长度!,这样可以手动添加当撞到物体后的物体反应(默认物体不会被撞开)
 4.simple move 会在着地后返回(用于空中运动)
 Move 则适用于地面移动
 5.下落也要自己写(默认不受重力),可以用isgroud判断和写,用move 来上下移动(跳跃下落)
 6.可以调整最高可以上的楼梯和斜坡高度
4.防止怪物掉下去或超出边界的容错机制,可以使用一个判断,假如pos .y 小于0,则pos 变成x,1,z
5.伤害文字显示,可以在画布的3d 中用字体的bestfit 然后调整字体的scale 至满意,然后添加脚本永远面向摄像机。
 1.注意,不能让字体lookat 摄像机的反向位置(加个负号),因为这是相对坐标而不是绝对坐标。可以用物体坐标减去相机坐标得到差值a 然后让物体lookat 它的坐标加上a 的位置,这个是相对坐标,可以做到。
 2.为了让每次显示的字体大小一致,可以允许水平和垂直方向文字溢出
 3.(原创)为了能一下子显示多条伤害信息并换行,可以用text +=“”+'/n '来控制
6.发生图标不被射线碰撞的原因是摄像机移动太快,图标上的collider 组件来不及跟上,解决方案是人物速度设到很慢。
  更好的解决方法是让画布离摄像头远一点(5左右),这样应该是由于和射线射下时有足够的距离充足的时间让collider 组件跟上
7.Enable =false 即可禁用该组件本身,而Gameobject .setactive 则是禁用该Gameobject 对象
8.技能的master 也可以传递的而并非一定用全局变量。可以a 先生成那个技能预设体b ,
 然后用一个局部变量Gameobject c 保存生成的实例b (一定要有!否则下面的步骤指向不明!)
 在预设体b 里写一个脚本,里面写一个Gameobject 型公共变量。然后把a 的Gameobject 赋给c (即一个特定的b ) 的该脚本组件里的这个变量!
9.Ugui 中谁越在画布的下面谁越后被渲染,即会显示的更前面,并且如果同一个canvas 下两个panel ,谁越在后面,那么就能屏蔽在它上面的panel 的交互性!
 所以一般把所有panel 写在一个canvas 里,主控制层panel 放在最上面,然后按逻辑层级别的面板,如弹出退出panel ,再下面放是否确定退出panel .
10.Ai :怪物脱战看的是你角色到怪物起始点的位置的距离决定的,如果大于某个设定距离,则怪物返回起始点,而不是靠两者相对距离决定是否脱战。两者距离用来决定怪物是否追击主角



0 0
原创粉丝点击