(六)跳一跳总结

跳一跳项目总结

  开始跳一跳项目,从Assert Store 寻找到人物模型,发现模型上没有跳跃动画,又从其它模型上发现跳跃动画,想将动画重定向一下,发现自己Mecanim动画系统不太熟练,搜到博客学习。
参考文档:    
Unity3D之Mecanim动画系统学习笔记
https://www.cnblogs.com/hammerc/p/4828774.html  

1、如果想在监听按钮的点击事件时为处理函数加入参数,可用delegate()
{
A();
}
1. ,如:
2.
3. void Start()
4. {
5. //lambda表达式转换为委托类型
6. btn.onClick.AddListener(delegate () { this.OnBtnClick(true); });
8. }
10. public void OnBtnClick(bool value)
11. {
12. Debug.Log(“Result ” + (value ? “On” : “Off”));
13. }

2、unity中按钮处理函数如果带参数,则会出来一个选框,让我们输入参数值
3、//将名称转换为哈希值可以提高索引的速度
private int moveSpeed = Animator.StringToHash(“moveSpeed”);
Animator里拖动布局:Alt+鼠标左键
4、重新加载场景时,出现场景变黑,所有物品身上什么颜色都没有,是因为
选择的光照是GI realtime实时光照,编辑器在当前场景时,它的灯光是已经渲染好了,但重新加载的时候灯光没有进行渲染,需要在Window—lighting—settings—去掉Auto Generate前的勾,再点击一下Generate Lighting
5、学习文档:
Unity3D之Mecanim动画系统学习笔记、
https://www.cnblogs.com/hammerc/p/4828774.html

零基础Unity3D游戏开发系列 第八章:骨骼动画(三)模型导入
http://www.manew.com/7855.html

动画重定向技术分析及其在Unity中的应用
http://blog.csdn.net/UWA4D/article/details/72910659

Unity/Animator – 创建Animator Controller
http://blog.csdn.net/linuxheik/article/details/78874288

Unity/Animation – 创建Animation Clip
http://blog.csdn.net/qq_28849871/article/details/72593569

Unity 3D角色动画之Animator
http://www.doc88.com/p-7837039046851.html

6、Header特性可以在Inspect面板显示()中的偏移量
[Header(“X轴的偏移量”)] public float _x = -0.5f;
7、3D Object里不管加入了什么都会给自动添加一个碰撞器,不需要自己再额外添加一个
8、Tag添加后想删除,delete后还留下个空的标签不用管它,下次启动项目就没了
9、Quaternion.identity不旋转物体
10、导入模型后发现模型太大,可以①、导入后改变Scale大小 ②、导入前改变Scale Factor大小
11、导入的模型发现锚点不在模型中点(或想要的点),可以新建一个3D object(如cube),取消cube的网格渲染器,将模型赋给object做子物体,,可将cube只保存Transform和Box Collider组件,其它都删除。
建Cube时选中一个物体,新建的cube就以这个物体当做中心。
12、图片的Texture Type设置为Sprite(2D and UI)可以当做Canvas里组件的Source Image,如(Panel),图片为Default则不行
13、
private static const int SECOND_NUM = 1;
const 默认就是静态的,所以在声明中显式地加上static 关键字的做法明显是错误的。
const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明(区别1)。
1. int t = 1;
2. private const int THIRD_NUM = t + 1;
3. 不正确的原因是:
4. const 字段只能在该字段的声明中初始化。不能从一个变量中提取值来初始化常量。这里面更深层次的原因就是:const 字段是编译时常数。在编译时就应该确定其具体值。

readonly字段可以使用变量来进行初始化
const 字段是编译时常数,而 readonly 字段可用于运行时常数(区别2)。

const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。这说明不同的实例可以有不同的常量值,所以说,使用readonly来定义不变量更加灵活(其实,这也是readonly的最大特点)(区别3)。

const对于引用类型的常数,可能的值只能是 string 和 null。而 readonly可以是用于任何类型字段的声明(区别4)
14、Rigidbody.velocity
刚体的速度向量。
在大多数情况下,你不应该直接修改速度,因为这会导致不真实的行为。不要设置每对象物理步的速度,这将导致不真实的物理模拟。一个典型的例子,当你在第一人称射击游戏中当跳跃的时候改变速度,因为你想立即改变速度。
15、Animator中Has Exit Time
如果我们勾选了该项,在动画转换时会等待当前动画播放完毕才会转换到下一个动画,如果当前动画是循环动画会等待本次播放完毕时转换,所以对于需要立即转换动画的情况时记得要取消勾选。
还有一种情况时,当我当前的动画播放完毕后就自动转换到箭头所指的下一个状态(没有其他跳转条件),此时必须勾选该选项,否则动画播放完毕后就会卡在最后一帧,如果是循环动画就会一直循环播放。

Exit time :0—1时,如0.75,如果不是循环动画,表示第一个动画播放75%跳转到第二个动画。如果是循环动画,表示动画播放到75%重新开始播放。如果>1时,比如3.5,表示动画循环播放3次,在第四次的50%时停止。

Fixed Duration,如果勾选,动画转换时间由固定秒数控制,不勾选,转换时间由动画的一部分控制如(0.5,从动画的一半开始播放)

Transition Duration转换时长(或从第一个动画的哪个部分开始执行转换)–两个动画重叠在一起的部分

Transition Offset 从第二个动画的那部分开始执行,0.3从第二个动画的30%位置开始播放

Interruption Source 转换会被什么事情打断

Ordered Interruption ,其它动画进行转换时会打断这个动画的转换(取决于)Interruption Source里设置的顺序
16、// m_AudioClip = Instantiate(Resources.Load(“进入游戏”)) as AudioClip;如果放在Start()中,此时StartScene正在生成中,还没有完全实例化到场景,
//此时m_AudioClip指向的“进入游戏”音频属于startPanel,我们在M_Start()中播放再立刻销毁startScene,就会听不到播放(太短了)。不删除startPanel能听到
//而在M_Start()中Instantiate(),此时StartScene已经实例化到场景,生成的m_AudioClip
//指向的“进入游戏”音频
//属于场景,删除StartScene不影响播放.
17、发现将EventSystem放在2个预制里面,生成第一个预制时正常使用,但再删除第一个预制,生成第二个预制时不会有响应。 把EventSystem拿出来可以使用
一个场景中只能有一个EventSystem,否则EventSystem会失效
18、运行到Destroy()时不会立刻销毁,会继续执行下面的语句,等到下一帧再执行如果想在Destroy()后立刻使用新的数,可放在协程里;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值