业务逻辑💼:
这个脚本的主要功能是让主角在场景中吃到金币💰,每吃到一个金币,主角的分数就会增加 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博客