这里会出错的,当敌人碰到草莓时,会报空指针。
这里会出错的,当敌人碰到草莓时,会报空指针。
优先级:void start>inspector>变量声明
Mathf.Clamp:限制数的边界值(当前,最低,最高);
void没有返回值;只执行代码
class:
{
pubic int maxHealth=5;
private int currenthealth;
}
void start()
{
current health=maxHealth
}
private void ChangeHealth(int amount)
{
currentHealth=Mathf.Clamp(current health+amount,0,maxHealth)
}
Clamp方法?
结果输出在控制台:Debug.Log(currentHealth+"/"+maxHealth)
ctrl+k+f 自动对齐
将smokeEffect的访问修饰符设置为private可以使用GetComponentInChildren<ParticleSystem>()获取
void start: 可理解为准备工作
private可不加访问符,private默认不加符号
Start前的语句为何要独立,是否可以安插在start内?
传参?amount?
Public&Private: 访问修饰符
访问级别:所有类型&类型成员都具有访问级别,用来判断是否可以允许访问某些成员变量和方法。可使用访问修饰符来指定声明类型或成员可访问性。
Public:任何代码均可访问,应用于所有类和成员。
Private: 只能在当前类中使用,应用于内嵌类或成员。
Protected: 只能在当前类或其派生类中使用,应用于内嵌类或成员。
float&int:
float: 存小数,int: 整数
“;”定义执行指令的区间
Vectro=类型
= 用于赋值
transform.position = 选择菜单名称+子属性,用“.”符号连接
1. add component搜索COMPOSITE 2D添加复合体组件。(同时生成rigid body 2D)
2. tilemap collider 2D 选composite(合并)。
3. 后续加入被禁止碰撞的环境也会自动缝合,ruby无法碰撞。
Application.targetFrameRate=30;
问题:当物体移动速度过快时,物体直接穿透其他物体而不产生碰撞。
因为每一帧的检测时间大概是0.02秒,也就是说速度过快,在不用0.02秒的时间就已经穿过了其他物体,那么这个时候是无法检测之间的碰撞信息的。
办法:
将需要快速运动的物体中的
Rigidbody 2D
→
Collision Detection(碰撞检测)
由 Discrete(离散的)设置为Continuous(持续的)
ctrl+k+c
ctrl+k+u
Vector2 二维向量
刚体组件:
unity这个功能真的厉害。注意::必须在同一层级,这个功能才起作用!!!
状态量开关bool和瞬时量机关Trigger
动画控制器也叫动画状态机
Product Name 游戏名称
设置好后
File(文件)→ BulidSettings……(生成设置)→PC(下SDK才可以打其他平台的包)→secenes In Build→Add Open Scenes(添加打包场景)→Build→设置存储位置