Tag Archives: unity

用NGUI UIPanel实现简单的遮罩

有时候我们需要用到遮罩,比如只想要显示某图片上半部分的时候。NGUI提供了UIPanel的方法来实现简单的矩形遮罩。以下是使用方法:

  1. 将需要遮罩的图片(一般是UITexture)放到遮罩的子层里。
  2. 设置UIPanel的Clipping属性为Soft Clip。
  3. 调整遮罩的宽高,位置。

注意:如果与UIPanel有父子关系(包括间接)的任何GameObject有缩放,必须保证他们的x,y,z缩放值是一样的,否则遮罩将不起作用。

Unity如何禁止手机进入自动休眠

要禁止移动设备自动进入休眠,就一定需要调用系统API。对于Unity项目来说,有两种方法。其一是使用其它语言比如Obj-C, java为Unity写专门的库,然后通过Unity脚本调用。另一种方法是用Unity生成xcode或者eclipse工程,然后直接在工程中修改。由于第二种方法比较简单,我们在demo中采用第二种方法。

1) ios

打开xcode工程,找到UnityAppController.mm。在didFinishLaunchingWithOptions方法的return之前加上下面这行代码即可:

2) android

打开eclipse工程,找到UnityPlayerNativeActivity.java。在onCreate方法的最后加上下面这行代码即可:

 

让Unity Mecanim立即切换到指定状态

Unity的Mecanim机制看上去很美,用起来却有点麻烦。比如我要用代码控制其切换状态的时候,按照官方指导是设置某个flag变量,让状态机自己切换。但此机制会等到当前状态的动画播放到一个特定位置才执行切换动作,会有一个延迟。无法满足即时性要求高的动作。

最后发现,其实要立即播放某个动作,直接调用animator.Play(“name”)就好了。另外,还可以调用此方法的另一个版本animator.Play(“name”, layer, time),通过参数控制动作的起始播放位置。

Unity自带摄像机跟随效果的拍摄角度控制

Unity自带的摄像机SmoothFollow脚本可以让摄像头盯住某个GameObject并保持跟随。但是怎么设置摄像头的拍摄角度呢?这里有一个小技巧,就是在被盯住的GameObject中,放一个空的子GameObject。然后让摄像头盯住这个空的GameObject即可。此时可以通过调整此子GameObject的旋转、位置来达到控制摄像头拍摄角度的目的。