Unity基础课程之物理引擎8-扔保龄球游戏案例(完)

三个脚本:

1.给求添加力

2.分数管理器

3.检测是否发生碰撞

-----------------------------------------------

脚本源码

1.给求添加力

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RoleControl : MonoBehaviour
{
    // 1.玩家控制一个保龄球,按下空格键,开始发射
    // 拿到物体

    GameObject MainRole;
    Rigidbody Onerigi;

    bool isDown = true;

   public float ForceDATA = 100f;
    void Start()
    {
        MainRole = GameObject.Find("MainRole");

    }
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space)&&isDown)//如果用户按下空格键
        {
            //开始添加力给MainRole
            Onerigi = MainRole.GetComponent<Rigidbody>();
            Onerigi.AddForce(new Vector3(0, 0, -1)* ForceDATA, ForceMode.Impulse);
            isDown = false;
        }//end if        

    }//end update
}//end class

2.分数管理器

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;

public class ScoreManager : MonoBehaviour
{    // 如果撞倒花瓶就加分 

    TMP_Text OneWenBen;
    GameObject wenben;
    public static int currentScore = 0;


    private void Start()
    {
        wenben = GameObject.Find("Text (TMP)");
        OneWenBen = wenben.GetComponent<TMP_Text>();
    }

   
    private void LateUpdate()
    {
        Debug.Log("恭喜你!得分了!你的分数是:" + currentScore);
        OneWenBen.text ="Score:"+ currentScore.ToString();
    }
}

3.检测是否发生碰撞

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CollisionTest : MonoBehaviour
{
    // 碰撞检测

    //private void OnTriggerEnter(Collider other)
    //{
    //    //发生了碰撞
    //    ScoreManager.currentScore += 1;//通知分数管理器类加分
    //    Debug.Log("开始碰撞");
    //    Debug.Log(other.gameObject.name);
    //}

    private void OnCollisionEnter(Collision collision)
    {
        Debug.Log("开始碰撞");
        if (collision.collider.gameObject.name!="Plane"&& collision.collider.gameObject.name != "Cube")
        {
            ScoreManager.currentScore += 1;
            //通知分数管理器类加分
           
        }

       
        Debug.Log(collision.collider.gameObject.name);
    }

}

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unity3d青子

难题的解决使成本节约,求打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值