unity 企鹅砸小猪 笔记2

2.脚本

  1)弹弓脚本

    1-input.GetButton函数测试

      说明

        input.GetButton(“...”)是根据按钮名称返回true当对应的虚拟按钮被按住时

        input.GetButton(“Fire1”):判断是否点击鼠标或触摸屏

      实测:

void Update () {

bool bIsButtonDown = Input.GetButton("Fire1");

if (!Clicked){

if (bIsButtonDown){

print("点击屏幕");

}

}

}

      效果:

      

      结果:

        函数无误

  2-collider.Raycast()函数测试

    说明:

       collider.Raycast():返回布尔(bool)值,当光线和任何碰撞器相交时,返回true,否则为false。也就是说,当光线碰触到任何碰撞器时返回真,否则返回假。

       具体说明:http://www.ceeger.com/Script/Collider/Collider.Raycast.html

    实测

    

      错误:“UnityEngine.Component”不包含“Raycast”的定义,并且找不到可接受类型为“UnityEngine.Component”的第一个参数的扩展方法“Raycast”(是否缺少 using 指令或程序集引用?) D:\Unity\unity01\qiezaxiaozhu\Assets\Scripts\DanGongS.cs

    结果:

      该函数无法在vs2010中运行,推测为unity 5.x移除该函数。寻找替补函数为:Physics.Raycast

  3-Physics.Raycast()函数测试

    说明:

      Physics.Raycast():光线投射,当光线投射与任何碰撞器交叉时为真,否则为假。

      具体说明:http://www.ceeger.com/Script/Physics/Physics.Raycast.html

    实测1:

      1.当光线投射与任何碰撞器交叉时为真,否则为假。

void Update () {

bool bIsButtonDown = Input.GetButton("Fire1");

if (!Clicked)

{

if (bIsButtonDown){

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

RaycastHit rch;

if (Physics.Raycast(ray, out rch, 1000.0f)){

print("碰撞");

}

}

}

}

    结果1:

      当光线投射与任何碰撞器交叉时为真,否则为假。成立

    实测2:

      由于本项目要锁定点击弹弓为才发生反应,要求与实测1不符,故采用他的重载函数。

      1.为弹弓建立新的Layer层,(Edit - Project Settings - Tags ands Layers - Layers - User Layer 8 - “fasheqi”)

      2.修改弹弓预设体的Layer层,

        

void Update () {

bool bIsButtonDown = Input.GetButton("Fire1");

if (!Clicked)

{

if (bIsButtonDown){

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

RaycastHit rch;

if (Physics.Raycast(ray, out rch, 1000.0f, 1 << 8)){

print("碰撞");

}

}

}

}

    结果2:

      光线投射只与“fasheqi”层的碰撞器交叉时为真,其他均为假。

    参考网页:

      [Unity3D]射线碰撞检测+LayerMask的使用:http://blog.sina.com.cn/s/blog_947a2cdd0102uz1k.html

      【风宇冲】Unity3D教程宝典之Raycast:http://www.xuebuyuan.com/2074615.html

时间: 2024-08-19 11:37:52

unity 企鹅砸小猪 笔记2的相关文章

unity 企鹅砸小猪 笔记1

1.材料创建 1)企鹅.猪 1.建立面片(plane),调整大小,与旋转位置(z-90:竖立 : y-180:转至正面) 2.对物体加载材质(materials) 设置:去除背景色 材质组件 -> Unlit/Transparent -> Unlit -> transparent 3.为物体添加组件 球形碰撞组件: sphere collider Radius:碰撞体大小 物理组件: rigidbody 固定轴: Freeze Position   Freeze Rotation 4.将

【Unity 3D】学习笔记三十五:游戏实例——摄像机切换镜头

摄像机切换镜头 在游戏中常常会切换摄像机来观察某一个游戏对象,能够说.在3D游戏开发中,摄像头的切换是不可或缺的. 这次我们学习总结下摄像机怎么切换镜头. 代码: private var Camera0: GameObject; private var Camera1: GameObject; private var Camera2: GameObject; private var Camera: GameObject; function Start() { //获取摄像机对象 Camera =

【Unity 3D】学习笔记二十八:unity工具类

unity为开发者提供了很多方便开发的工具,他们都是由系统封装的一些功能和方法.比如说:实现时间的time类,获取随机数的Random.Range( )方法等等. 时间类 time类,主要用来获取当前的系统时间. using UnityEngine; using System.Collections; public class Script_04_13 : MonoBehaviour { void OnGUI() { GUILayout.Label("当前游戏时间:" + Time.t

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

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

【Unity 3D】学习笔记三十四:游戏元素——常用编辑器组件

常用编辑器组件 unity的特色之一就是编辑器可视化,很多常用的功能都可以在编辑器中完成.常用的编辑器可分为两种:原有组件和拓展组件.原有组件是编辑器原生的一些功能,拓展组件是编辑器智商通过脚本拓展的新功能. 摄像机 摄像机是unity最为核心组件之一,游戏界面中显示的一切内容都得需要摄像机来照射才能显示.摄像机组件的参数如下: clear flags:背景显示内容,默认的是skybox.前提是必须在render settings 中设置天空盒子材质. background:背景显示颜色,如果没

【Unity 3D】学习笔记二十六:unity游戏脚本(六)

在3D游戏世界中,任何一个游戏对象在创建的时候都会附带Transform(变换)组件,并且该组件是无法删除的,也不应该删除.在unity中,Transform面板一共有3个属性: Position  (位置) Rotation(旋转) Scale(缩放) 这三个值都是用来调整游戏对象在游戏界面中的位置,状态等相关参数. Position  (位置) 任何一个游戏对象的三维坐标都保存在Vector3容器中,该容器记录对象在X轴,Y轴,Z轴的坐标.一旦Vector33容器中的坐标发生变化,那么Sce

【Unity Shaders】学习笔记——SurfaceShader(十一)光照模型

[Unity Shaders]学习笔记——SurfaceShader(十一)光照模型 转载请注明出处:http://www.cnblogs.com/-867259206/p/5664792.html 如果你想从零开始学习Unity Shader,那么你可以看看本系列的文章入门,你只需要稍微有点编程的概念就可以. 水平有限,难免有谬误之处,望指出. LitSphere(Matcap) 发光球体光照模型就是将发光球体的纹理映射在球体上,来实现光照效果.这可以创造一些效果细腻的发光球体效果,但是它不受

【Unity Shaders】学习笔记——SurfaceShader(十)镜面反射

[Unity Shaders]学习笔记——SurfaceShader(十)镜面反射 如果你想从零开始学习Unity Shader,那么你可以看看本系列的文章入门,你只需要稍微有点编程的概念就可以. 水平有限,难免有谬误之处,望指出. Unity内置的高光函数 Unity内置了一种高光光照模型——BlinnPhone. 使用方法如下: Shader "Custom/BlinnPhong"{ Properties { _MainTex ("Base (RGB)", 2D

【Unity Shaders】学习笔记——SurfaceShader(二)两个结构体和CG类型

[Unity Shaders]学习笔记——SurfaceShader(二)两个结构体和CG类型 转载请注明出处:http://www.cnblogs.com/-867259206/p/5596698.html 写作本系列文章时使用的是Unity5.3. 写代码之前: 当然啦,如果Unity都没安装的话肯定不会来学Unity Shaders吧? 阅读本系列文章之前你需要有一些编程的概念. 在VS里面,Unity Shaders是没有语法高亮显示和智能提示的,VS党可以参考一下这篇文章使代码高亮显示