可以将场景变量赋值给物体,但不能赋值给Prefabs的public值的
可以将场景变量赋值给物体,但不能赋值给Prefabs的public值的
z轴是前方向
y轴是上方面
x轴是右方向
注释快捷键:
ctrl+k:选中
ctrl+c:注释
Cursor(claud sonnet3.7)是编程最好的模型
ChatGPT 4o 生成图片的功能很强大(挂梯子)
DeepSeek 国内使用
Grok
材质, 物理材质,
Vector 向量
Input.GetKeyDown(GetKeyCode.Space)
Input.GetKeyUp(GetKeyCode.Space)
聚焦: f f5 双击
改名: f2
Debug.Log
日志输出
Start 开始
Update 结束
生命周期函数
跳起方法
利用钢体Rigidbody中的速度
Rigidbody rigiboay = Get Component< Rigidbody>
Get Component< Rigidbody>获取Rigidboady组件
rigiboay.AddForce(transform.up*5,ForcMode.Impulse);
AddForce给出一个力
(transform.up*5,ForcMode.Impulse)transform向上跳跃五个ge
public GameObject vfx
public访问修饰符,表示变量时公开的
GameObject变xioang量类型,代表场景中的对相
vfx变量名
BoxCollder刚体 Is Triggerchu'fa检测
函数:
OnTriggerEnter
当另一个碰撞体首次进入触发器的碰撞体时调用。
只会在碰撞开始的那一帧调用一次。
OnTriggerStay
当另一个碰撞体停留在触发器的碰撞体内时,每一帧都会调用。
注意:这可能会对性能产生影响,因为每一帧都会调用,尤其是当有多个物体停留在触发器内时。
OnTriggerExit
当另一个碰撞体离开触发器的碰撞体时调用。
只会在离开的那一帧调用一次。 这三个是 Unity 引擎中用于处理 触发器 事件的核心方法。它们都属于 MonoBehaviour类,用于检测两个碰撞体之间的“穿透”交互,而不是物理碰撞
要理解它们,首先要明白一个关键概念:触发器。当一个碰撞体组件上的 Is Trigger 属性被勾选时,它就从一个“实心墙”变成了一个“幽灵区域”。物理引擎会忽略它的碰撞(物体可以直接穿过),但会检测到其他碰撞体与它的交叉事件。
Destroy(game object)销毁自身
终于完成!
--通过刚体控制跳跃
GetComponent<组件>()
获取组件
rigibody.AddForce(力的方向, ForceMode)
力的方向:Vector3.up(相当于(0,1,0))
ForceMode:力的(影响)方式
1)VelocityChange:速度上的改变
触发事件:
1、至少有一个刚体开启触发器
2、都有collider
--Trigger Enter
发生接触时触发一次
--Trigger Stay
接触时触发
--TriggerExit
触发结束时触发一次
获取游戏物体
collision:collision.gameObject
collider:other.gameObject
碰撞:两个物体是否接触
1、两个物体必须有collider
2、至少其中一个物体有刚体组件
--OnCollisionEnter
碰撞开始触发一次
--OnCollisionExit
碰撞结束触发一次
--OncollisionStay
两物体保持接触(优化-两物体不在变化后不再触发)
触发:一个物体是否进入另外一个物体。
材质 Materials
贴图Textures
5分09秒时这里讲错了,足球敌人的目标应该是玩家的球门而不是玩家,应该改为:
playerGoal = GameObject.Find("Goals/Player Goal");
这里 Player Goal 是 Goals 的子物体,用 Goals/Player Goal 的层级关系才能用物体的名称找到物体。
其次敌人的移动速度没有设置,在 Prefabs 文件夹中把 Enemy预制体 上挂载的 Enemy X脚本 的speed 速度参数调到 0 以上。
这样足球敌人就可以正常朝玩家球门移动了。
C#脚本文件中的类名要与脚本文件名保持一致!!!!