首页 > 代码库 > 【Unity 3D】学习笔记四十五:游戏实例——击垮围墙
【Unity 3D】学习笔记四十五:游戏实例——击垮围墙
用这个游戏实例来总结之前我们复习的所有关于物理引擎的知识。在游戏中,发送一个球形的炮弹来击垮前面的墙。给炮弹与墙都添加了刚体组件,给炮弹绑定了粒子系统,并且在炮弹的粒子动画中添加了5组不同的颜色,显示移动轨迹。
using UnityEngine; using System.Collections; public class Script_06_14 : MonoBehaviour { //炮弹对象 private GameObject obj; //准心贴图 public Texture texture; void Start () { //获取炮弹对象 obj = GameObject.Find("Sphere0"); //隐藏默认鼠标图标 Screen.showCursor = false; } void FixedUpdate() { //点击鼠标左键后 if(Input.GetMouseButton(0)) { //创建射线从摄像机位置发射到鼠标选择位置 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; //判断射线是否与游戏对象相交 if(Physics.Raycast(ray, out hit)) { //确保游戏对象为围墙 if(hit.collider.name =="Cube") { //计算炮弹与目标点之间的距离 Vector3 direction = hit.transform.position - obj.transform.position; //发射炮弹 obj.rigidbody.AddForceAtPosition(direction, hit.transform.position,ForceMode.Impulse); } } } } void OnGUI() { //绘制准心 Rect rect = new Rect(Input.mousePosition.x -(texture.width >>1 ) ,Screen.height - Input.mousePosition.y - (texture.height >> 1),texture.width,texture.height); GUI.DrawTexture(rect,texture); } }运行后:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。