Unity3D教程游戏开发鼠标路线
来源:互联网 发布:Mac pro 怎么看芒果TV 编辑:程序博客网 时间:2024/05/16 17:35
需求:以教堂十字架为背景,在其上做从上到下,从左到右的画线操作.
解决:由于横竖两个物件的交叉处无法做2次判断(若交叉处判定为垂直物件的,则划横线时无法响应),便将其查分成5块.结合处单独
立方体表示.以垂直方向考虑,为了让其精确判断,将上下两部分再次准确分割,加入两个比较短的判定位置.最上面的短判定位置为路
线记录起始,下面的是中止,在unity3d中,用5个互相穿插的立方体表示.
起始思路(只碰两个):
第一个立方体脚本如下 cubeA.js
// 是否进入立方体内
static var col : boolean = false;
function OnMouseEnter() { col = true; }
function OnMouseExit(){ col = false; }
第二个立方体脚本如下 cubeB.js
function OnMouseEnter(){ if(cubeA.col == true){ 成功 } }
结果发现,就算两个立方体穿插在一起.只要鼠标进入第二个立方体,就是判定离开第一个立方体.所以 cubeA.col 只要在cubeB里必
然是false.
完成思路:
找到了个比较好的数据Time.renderedFrameCount ,已经运行的帧数.
cubeA.js
// 记录鼠标离开时的帧数
static var frm :int = 0;
function OnMouseExit(){ frm = Time.renderedFrameCount; }
cubeB.js
// 是否正常从第一块划过
static var col : boolean = false;
// 记录鼠标离开时的帧数
static var frm :int = 0;
function OnMouseEnter()
{
//给5帧的机会
if( (Time.renderedFrameCount - cubeA.frm ) < 5)
{
col = true;
}
}
function OnMouseExit(){ if( col == true )frm =Time.renderedFrameCount; }
在unity3d教程第3个物件里这样写
static var col : boolean = false;
function OnMouseEnter()
{
if(cubeB.col == true && ( Time.renderedFrameCount - cubeB.frm) < 5 ))
{
col = true
}
}
function OnMouseExit(){ if( col == true )frm =Time.renderedFrameCount; }
解决:由于横竖两个物件的交叉处无法做2次判断(若交叉处判定为垂直物件的,则划横线时无法响应),便将其查分成5块.结合处单独
立方体表示.以垂直方向考虑,为了让其精确判断,将上下两部分再次准确分割,加入两个比较短的判定位置.最上面的短判定位置为路
线记录起始,下面的是中止,在unity3d中,用5个互相穿插的立方体表示.
起始思路(只碰两个):
第一个立方体脚本如下 cubeA.js
// 是否进入立方体内
static var col : boolean = false;
function OnMouseEnter() { col = true; }
function OnMouseExit(){ col = false; }
第二个立方体脚本如下 cubeB.js
function OnMouseEnter(){ if(cubeA.col == true){ 成功 } }
结果发现,就算两个立方体穿插在一起.只要鼠标进入第二个立方体,就是判定离开第一个立方体.所以 cubeA.col 只要在cubeB里必
然是false.
完成思路:
找到了个比较好的数据
cubeA.js
// 记录鼠标离开时的帧数
static var frm :int = 0;
function OnMouseExit(){ frm = Time.renderedFrameCount; }
cubeB.js
// 是否正常从第一块划过
static var col : boolean = false;
// 记录鼠标离开时的帧数
static var frm :int = 0;
function OnMouseEnter()
{
function OnMouseExit(){ if( col == true )frm =Time.renderedFrameCount; }
static var col : boolean = false;
function OnMouseEnter()
{
}
function OnMouseExit(){ if( col == true )frm =Time.renderedFrameCount; }
0 0
- Unity3D教程游戏开发鼠标路线
- unity3d游戏开发教程
- Unity3D游戏开发教程 链接
- [Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小
- [Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小
- [Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小
- 7小时Unity3D游戏开发培训教程
- 7小时Unity3D游戏开发培训教程
- Unity3D教程:游戏开发算法(一)
- Unity3D教程:游戏开发算法(二)
- unity3D教程 : 游戏算法开发(三)
- unity3d教程:游戏开发算法(四)
- unity3d游戏开发之UV贴图教程
- unity3D游戏开发中鼠标、键盘的基本操作
- 游戏开发学习路线
- Unity3D更改游戏鼠标样式
- [Unity3D]Unity3D游戏开发之史上最简单的鼠标点击控制人物走动实现
- 【Unity3D自学记录】Unity3D游戏开发之鼠标滚轮实现放大缩小
- Activity的四种launchMode
- 常用SQL
- UIModalPresentationFormSheet 改变加变大小
- Servlet在web.xml中的配置
- 如何在Struts的Action中直接使用POI生成Excel并下载
- Unity3D教程游戏开发鼠标路线
- Linux 下IPC总结(全)
- 分布式搜索elasticsearch java API 之(八)------使用More like this实现基于内容的推荐
- 【node】关于Most middleware (like session) is no longer bundled with Express and must be installed ……
- OCP-1Z0-051-题目解析-第11题
- button的长按事件
- unable to connect to your virtual device genymotion will now stop check your virtualbox network
- code review
- 关注C++细节——含有本类对象指针的类的构造函数、析构函数、拷贝构造函数、赋值运算符的例子