Time.deltatime:每一帧占用的时间长度增量(秒)
1s 60帧/59帧/61帧。
update每秒调用60次
Time.deltatime:每一帧占用的时间长度增量(秒)
1s 60帧/59帧/61帧。
update每秒调用60次
单纯的使用transform组件进行角色的移动控制,当角色身上的RigidyBody组件和别的碰撞器检测碰撞 和 角色本身的通过Transform组件进行移动的脚本会发生冲突,导致角色发生碰撞时闪动
解决方法:直接通过RigidyBody组件提供的MovePosition方法进行移动
Input.GetKeyDown(KeyCode.X)
也可以用距离向量检测
属性不会被暴露在inspector面板
属性:可以访问但不可修改方法
Ctrl+R+E=自动写属性
public int health{ get{return currentHealth;}}
PS:return 末尾加分号
来学编程的,直接不画,多简单。
if后面不加分号
(gameObject)指代当前脚本挂载对象
!=为不等,==为等于,=为赋值,
collision(被调用的组件对象).GetComponent<RubyController//>();
触发检测条件:
1.双方均有(boxcollider)
2.一方为动态且有刚体组件
3.一方为触发器
(collider2D collision):collider类型的参数叫做collision
这岂不是攻击时,碰到敌人,不显示受伤动画?一看就是unity官方游戏玩的少。
變量設在在public可以在inspector面板看到。
crrl + r + e 快速出属性
这里会出错的,当敌人碰到草莓时,会报空指针。
优先级: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>()获取