业务逻辑💼:
这个脚本的主要功能是让主角在场景中吃到金币💰,每吃到一个金币,主角的分数就会增加 10 分🎉,同时销毁金币。这样,玩家就可以通过吃金币来增加分数,挑战更高的得分🔓。
程序逻辑💻:
1️⃣首先,在脚本的开始部分,通过 GameObject.FindGameObjectWithTag("Role")
找到主角,并将其存储在 Role
变量中🔖。
2️⃣然后,定义一个 OnTriggerEnter
方法,这个方法会在主角进入金币的触发范围内被调用🔨。在这个方法中,首先通过 Destroy(other.gameObject)
销毁金币🗑️,然后通过 Score.CurrentScore += 10
增加主角的分数🎓。这样,当主角吃到金币时,就会执行这个方法,实现吃金币加分的效果🎊。
场景搭建
摆放金币,设置碰撞器为触发器
脚本挂在主角身上,主角需要加刚体,我拒绝了受重力影响
代码福利:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CollectingCoins : MonoBehaviour
{
// 这脚本实现主角吃金币,并且加分
/* 程序逻辑:1.用户主角碰到金币后检测碰撞或者触发检测 2.如果金币碰到主角,则销毁金币 分数+1
*/
GameObject Role;
void Start()
{
Role = GameObject.FindGameObjectWithTag("Role");//通过标签拿到主角也可以通过名字
}
//触发检测,碰撞检测原理一模一样,这里是触发检测,如果场景物体不得不碰撞就用碰撞检测
private void OnTriggerEnter(Collider other)
{
Destroy(other.gameObject);
Score.CurrentScore += 10;// 另一个类的静态变量直接访问,每次加十分
}//end Trigge
}//end class
往期回顾:
Unity中控制摄像机跟踪游戏角色(插值柔和追踪+旋转)-CSDN博客
Unity实现用WASD控制一个物体前后左右移动-小白课程01-CSDN博客
Unity基础课程之物理引擎2-用于射击或者点击消除的射线检测方法-CSDN博客