【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);

	}
}

运行后:

以上都是很简陋的说明下,如果读者想要做出我这样的效果,我会在写完所有的学习总结的时候,把所有的源代码上传至空间。如现在就需要,请私信。谢谢。

【Unity 3D】学习笔记四十五:游戏实例——击垮围墙

时间: 2024-12-17 14:28:30

【Unity 3D】学习笔记四十五:游戏实例——击垮围墙的相关文章

JAVA学习笔记(四十五) - 布局管理器

FlowLayout流式布局管理器 /* * FlowLayout流式布局管理器 */ public class Test03 { public static void main(String[] args) { Frame frame=new Frame("My Frame"); Button btn1=new Button("按钮1"); Button btn2=new Button("按钮2"); Button btn3=new Butto

【Unity 3D】学习笔记四十六:输入与控制——键盘事件

在游戏中,玩家控制主角移动,按键攻击,选择行走.都需要在程序中监听玩家的输入.unity为开发者提供了input库,来支持键盘事件,鼠标事件以及触摸事件.本文主要回顾键盘事件,以后会逐文复习鼠标以及触摸事件. 键盘事件 一般的PC键盘有104个不同的按键,在程序中通过监听这些按键事件,从而进一步执行逻辑操作.如:射击游戏中,W表示前进,S表示后退,A表示左移,D表示右移. 按下事件 在脚本中,用input.GetKeyDown( )方法将按键值作为参数,监听此按键是否被按下.按下返回true,否

【Unity 3D】学习笔记四十四:路径渲染

路径渲染 路径渲染属于特效渲染组件,用于跟随运动中的游戏对象.首先在hierarchy视图中,创建一个球体.然后在菜单导航栏中选择component--effects--trial renderer即可将路径渲染组件添加至该球体对象中. cast shadows:显示阴影效果. receive shadows:接受阴影效果. materials:材质. size:渲染的材质数量,可添加或删除. element 0:渲染材质文件. use light probes:是否使用光线探头. light

【Unity 3D】学习笔记四十二:粒子特效

粒子特效 粒子特效的原理是将若干粒子无规则的组合在一起,来模拟火焰,爆炸,水滴,雾气等效果.要使用粒子特效首先要创建,在hierarchy视图中点击create--particle system即可 粒子发射器 粒子发射器是用于设定粒子的发射属性,比如说粒子的大小,数量和速度等.在创建完粒子对象后,在右侧inspector视图中便可以看到所有的粒子属性: emit:是否是使用粒子发射器. min size:粒子最小尺寸. max size:粒子最大尺寸. min energy:粒子的最小生命周期

Android学习笔记二十五之ListView多布局实现

Android学习笔记二十五之ListView多布局实现 这一节是介绍ListView这个控件的最后一节,实现一个Item的多布局.像我们经常在用的各种即时通讯工具,QQ.微信等,假设他们的会话界面是ListView实现的,那么ListView就有多种Item布局,这一节,我们就来实现一个ListView的多种Item. 要实现ListView里面有多种Item,就要重写适配器的两个方法getViewTypeCount()和getItemViewType(int position),第一个方法是

Android学习笔记(十五)——碎片的生命周期(附源码)

碎片的生命周期 点击下载源码 与活动类似,碎片具有自己的生命周期.理解了碎片的生命周期后,我们可以在碎片被销毁时正确地保存其实例,在碎片被重建时将其还原到前一个状态. 1.使用上一篇的项目Fragments,在Fragment1.java文件中添加如下代码: package net.zenail.Fragments; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragm

VSTO学习笔记(十五)Office 2013 初体验

原文:VSTO学习笔记(十五)Office 2013 初体验 Office 2013 近期发布了首个面向消费者的预览版本,我也于第一时间进行了更新试用.从此开始VSTO系列全面转向Office 2013平台,即VSTO 5.0. 本系列所有测试代码均在Visual Studio 2012 Ultimate RC + Office 2013 Professional Plus x64 Preview 上测试通过 为了配合Windows 8,微软的很多软件风格都逐渐Metro化,Office作为拳头

马哥学习笔记二十五——ISCSI协议,架构及其安装配置

ISCSI监听在tcp/3260端口 iSCSI Target:iscsi-target-utils 客户端认正方式: 1.基于IP 2.基于用户,CHAP tgtadm:命令行工具,模式化命令 --mode 常用模式:target,logicalunit,account target --op new.delete.show.update.bind.unbind logicalunit --op new.delete account --op new.delete.bind.unbind --

angular学习笔记(二十五)-$http(3)-转换请求和响应格式

本篇主要讲解$http(config)的config中的tranformRequest项和transformResponse项 1. transformRequest: $http({ transformRequest: function(data){ //对前台发送的data进行处理 return data } }) 这个在测试的时候遇到了很大的问题.只要经过transformRequest函数处理,哪怕是不做任何处理,node后台都会报错,需要尝试使用php 2. transformResp