本节最终效果演示
文章目录
- 本节最终效果演示
- 系列目录
- 前言
- 实现树倒下的效果
- 拾取圆木
- 砍树消耗卡路里
- 斧头手臂穿模问题处理
- 源码
- 完结
系列目录
前言
欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中,我们将探索如何制作一个类似于七日杀和森林的生存游戏。
本篇内容会比较多,我会分几篇来实现,感兴趣的可以关注一下,以免错过内容更新。
本节主要实现砍树功能优化,拾取原木,消耗卡路里,工具穿模问题处理。
实现树倒下的效果
这里分享另一种实现砍树的效果,如果之前分享的效果不是你想要的,可以选择使用这种办法,不然可以忽略
可以修改树木的刚体,锁住y轴的旋转,并将碰撞体改为胶囊体,记得刚体阻力不要加太大,会影响树倒下的速度
将动画控制组件放在子物体内
其他和前面一致,稍微修改ChoppableTree代码即可
public class ChoppableTree : MonoBehaviour
{
public float treeMaxHealth; // 树木最大生命值
public float treeHealth; // 树木当前生命值
private Animator animator;
public float caloriesSpentChoppingWood = 20;//消耗卡路里
private void Start()
{
treeHealth = treeMaxHealth;
animator = transform.GetComponentInChildren<Animator>();
}
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("AxeHead")) TakeDamage(1);
}
void TakeDamage(int damage)
{
animator.SetTrigger("shake"); // 播放摇晃动画
treeHealth -= damage; // 生命值减少
PlayerState.Instance.currentCalories -= caloriesSpentChoppingWood;//消耗卡路里
if (treeHealth <= 0)
{
transform.GetComponent<Rigidbody>().isKinematic = false;//树倒下
StartCoroutine(TreeIsDead());// 树木死亡
}
}
// 树木死亡的方法
IEnumerator TreeIsDead()
{
yield return new WaitForSeconds(5.0f);
Destroy(transform.gameObject); // 销毁树木的父对象
// 创建砍倒后的树木
Instantiate(Resources.Load<GameObject>("生成圆木"), new Vector3(transform.position.x, transform.position.y, transform.position.z), transform.rotation);
}
}
效果
拾取圆木
圆木挂载脚本和绘制icon,物品介绍
修改图层
效果
砍树消耗卡路里
修改ChoppableTree
public float caloriesSpentChoppingWood = 20;//消耗卡路里
void TakeDamage(int damage)
{
PlayerState.Instance.currentCalories -= caloriesSpentChoppingWood;//消耗卡路里
//。。。
}
效果
斧头手臂穿模问题处理
具体实现可以看我这一篇:【unity小技巧】两种办法解决FPS游戏枪或者人物穿墙穿模问题(2024/1/11补充)
这里我们直接简单选择多加个相机单独渲染我们手臂
源码
源码不出意外的话我会放在最后一节
完结
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,以便我第一时间收到反馈,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!
好了,我是向宇
,https://xiangyu.blog.csdn.net
一位在小公司默默奋斗的开发者,出于兴趣爱好,最近开始自学unity,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!php是工作,unity是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~