Unity3D教程游戏开发鼠标路线

需求:以教堂十字架为背景,在其上做从上到下,从左到右的画线操作.
解决:由于横竖两个物件的交叉处无法做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; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值