先看场景搭建
这个场景搭建的比较简单,有美术癖好的同学可以升级的华丽一点
1.BaoLQManager.cs
场景中找个空物体挂上去,不要忘了赋值球的刚体到变量里!
这个脚本实现了基本的保龄球游戏逻辑,java基础人机猜拳包括拿到保龄球的钢体组件+扔球功能。
挂载效果:
现在你已经实现了按下空格让小球受力往前跑!
下面是详细介绍:
public Rigidbody BaoLqRIGI; // 获取保龄球的刚体组件
public float ForceStrength = 100f; // 定义施加力的强度
bool IsShot = true; // 这是一个开关,用来控制是否允许加力
BaoLqRIGI:保龄球的刚体组件,用于控制保龄球的运动。
ForceStrength:施加力的强度,控制保龄球被扔出去的力度。
IsShot:一个开关变量,用于控制是否允许给保龄球加力。
Start 方法
void Start()
{
IsShot = true; // 初始化开关,允许加力
}
在游戏开始时,初始化 IsShot 为 true,允许加力。
FixedUpdate 方法
void FixedUpdate()
{
// 检查保龄球的刚体组件是否存在
if (BaoLqRIGI != null)
{
// 检查用户是否按下鼠标左键或空格键,并且是否允许加力
if ((Input.GetMouseButtonDown(0) || Input.GetKeyDown(KeyCode.Space)) && IsShot)
{
// 给保龄球添加一个爆发力,方向为正Z轴,力的大小为ForceStrength
BaoLqRIGI.AddForce(new Vector3(0, 0, 1 * ForceStrength * Time.deltaTime), ForceMode.Impulse);
// 设置开关为false,防止重复加力
IsShot = false;
}
}
else
{
// 如果保龄球的刚体组件不存在,输出调试信息
Debug.Log("你的球已经没有了,怎么还在点");

}
}
FixedUpdate 方法在每一帧中调用,用于处理物理相关的更新。
首先检查保龄球的刚体组件 BaoLqRIGI 是否存在。
如果存在,检查用户是否按下鼠标左键或空格键,并且 IsShot 为 true。
如果条件满足,给保龄球施加一个爆发力,方向为正Z轴,力的大小为 ForceStrength。
施加力后,将 IsShot 设置为 false,防止重复加力。
如果保龄球的刚体组件不存在,输出调试信息。
总结:
这个脚本的逻辑可以总结为以下几个步骤:
初始化:
在 Start 方法中,初始化 IsShot 为 true,允许加力。
物理更新:
在 FixedUpdate 方法中,每一帧检查保龄球的刚体组件是否存在。
如果存在,检查用户是否按下鼠标左键或空格键,并且 IsShot 为 true。
如果条件满足,给保龄球施加一个爆发力,方向为正Z轴,力的大小为 ForceStrength。
施加力后,将 IsShot 设置为 false,防止重复加力。
如果保龄球的刚体组件不存在,输出调试信息。
这个脚本实现了基本的保龄球扔出去的功能,通过用户输入来控制保龄球的运动。后续可以扩展这个脚本,添加碰撞检测、分数计算和柱子消失等功能。
2.BLqCollision
这个脚本实现了保龄球的碰撞检测和分数计算功能,并且在特定条件下销毁碰撞到的物体或保龄球本身。
讯享网
详细注释:
变量声明:
YourScore:一个整数变量,用于存储分数。
Start 方法:
初始化 YourScore 为 0。
OnCollisionEnter 方法:
当有物体碰撞到保龄球时调用此方法。
输出调试信息,表示有物体碰撞到了保龄球。
获取碰撞到的物体的名称。
检查碰撞到的物体是否是 "Road" 或 "Plane"。
如果是 "Road" 或 "Plane",输出调试信息,表示没有撞到有效的目标。
如果不是 "Road" 或 "Plane",则分数加1,并输出调试信息,显示当前分数和碰撞到的物体名称。
OnCollisionExit 方法:
当保龄球离开一个碰撞器时调用此方法。
输出调试信息,表示保龄球离开了某个碰撞器。
检查离开的物体是否是 "Road"。
如果不是 "Road",则在2秒后销毁离开的物体。
如果是 "Road",则立即销毁保龄球,并输出调试信息,表示立即销毁保龄球。
OVER!
恭喜你完成游戏!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/922.html