原文链接
https://blog.csdn.net/q764424567/article/details/78426905

参考资料:
Unity3D教程之EasyTouch插件
http://www.newbieol.com/information/564.html
Unity3D EasyTouch 初步使用教程(详细)
http://blog.csdn.net/lifeonelive/article/details/47974905
Unity插件EasyTouch学习记录
http://blog.csdn.net/crazyape/article/details/71597452
【Unity插件】EasyTouch5教程
http://blog.csdn.net/weixin_38158625/article/details/72673294
Unity插件——EasyTouch的使用
http://blog.csdn.net/u014086857/article/details/52087379

首先是下载链接:
第一:http://www.newbieol.com
第二:https://www.assetstore.unity3d.com/cn/#!/content/3322
第三:http://download.csdn.net/detail/s10141303/6962919
第四:http://pan.baidu.com/s/1o6Bt2bS

创建步骤:
点击菜单栏的Tools->Hedgehog Team->Easy Touch->Extensions->Add a new Joystick 完成以上骤,此时就会在Game试图左下角看到创建了虚拟遥感的实例。

属性面板的组件预览

属性面板组件参数

joystick properties

Joystick properties下的Joystick name的命名很重要(名字要设置好,脚本代码可以根据这个名字找到是哪个摇杆触发的),等下脚本要用到它。
  
joystick position & size

joystick axes properties & events

Interaction type(事件驱动类型)选择Event Notification。
  
joystick textures

参数Speed,控制的是摇杆的x,y轴向的灵敏度,都改为1即可。
以上设置完成后,我们新建一个脚本Move.cs

添加如下代码。

using UnityEngine;
using System.Collections;

public class Move : MonoBehaviour {

    void OnEnable()  {    EasyJoystick.On_JoystickMove += OnJoystickMove;  }  //  此函数是摇杆移动中所要处理的事void OnJoystickMove(MovingJoystick move)  {    if (move.joystickName != "new joystick")       //  在这里的名字new joystick 就是上面所说的很重要的名字,在上面图片中joystickName的你修改了什么名字,这里就要写你修改的好的名字(不然脚本不起作用)。{  return;  }  float PositionX = move.joystickAxis.x;       //   获取摇杆偏移摇杆中心的x坐标float PositionY = move.joystickAxis.y;      //    获取摇杆偏移摇杆中心的y坐标if (PositionY != 0 || PositionX != 0)  {                //  设置控制角色或物体方块的朝向(当前坐标+摇杆偏移量)transform.LookAt(new Vector3(transform.position.x + PositionX, transform.position.y, transform.position.z + PositionY));  //  移动角色或物体的位置(按其所朝向的位置移动)transform.Translate(Vector3.forward * Time.deltaTime * 25);  }  }

}

把此脚本放到需要用摇杆控制的物体上,即可实现摇杆控制物体移动。

实例一
场景里放一个cube,当我用一根手指在屏幕上滑动的时候,我需要cube旋转;当我对它拖拽时,需要它跟着手指移动;当我用两根手指滑动时相机平面移动;当我双指向内捏或者向外拉时相机拉近或远。

1.首先添加 easytouch游戏对象,它本身有许多设置选项,我大概过了一下,然后,啥也没记住。
这个简易demo里也不需要修改什么。
2.创建cube
3.创建脚本,并挂给cube
4.编写脚本

这是easytouch中订阅事件的方法,EasyTouch下定义了各种类型的事件,我们只需要编写相应处理方法,然后+=订阅。在OnEnable中订阅,在OnDisable和OnDestroy中取消订阅。方法要传一个Gesture类型的参数,包含了手势的数据。

我的EasyTouchTest

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HedgehogTeam.EasyTouch;
using UnityEngine.UI;
public class EasyTouchTest : MonoBehaviour {
public Button BtnReset;
// Use this for initialization
void Start () {

}  // Update is called once per frame
void Update () {  }  void OnEnable() {  EasyTouch.On_Swipe += On_Swipe;  EasyTouch.On_Drag += On_Drag;  EasyTouch.On_Swipe2Fingers += On_Swipe2Fingers;  EasyTouch.On_Pinch += On_Pinch;  BtnReset.onClick.AddListener(ResetScene);
}  void OnDisable() {  EasyTouch.On_Swipe -= On_Swipe;  EasyTouch.On_Drag -= On_Drag;  EasyTouch.On_Swipe2Fingers -= On_Swipe2Fingers;  EasyTouch.On_Pinch -= On_Pinch;  BtnReset.onClick.RemoveListener(ResetScene);
}  void OnDestroy() {  EasyTouch.On_Swipe -= On_Swipe;  EasyTouch.On_Drag -= On_Drag;  EasyTouch.On_Swipe2Fingers -= On_Swipe2Fingers;  EasyTouch.On_Pinch -= On_Pinch;  BtnReset.onClick.RemoveListener(ResetScene);
}  /// <summary>
/// 重置cube和相机
/// </summary>
void ResetScene() {  transform.position = Vector3.zero;  transform.rotation = Quaternion.Euler(Vector3.zero);  Camera.main.transform.position = new Vector3(0, 0, -10);
}  /// <summary>
/// 滑动使cube旋转
/// </summary>
/// <param name="ges"></param>
void On_Swipe(Gesture ges) {  Vector3 vec = new Vector3(ges.deltaPosition.y, ges.deltaPosition.x, 0);  transform.Rotate(vec ,Space.World);
}  /// <summary>
/// 拖拽移动cube
/// </summary>
/// <param name="ges"></param>
void On_Drag(Gesture ges) {  if (ges.pickedObject == gameObject) {  transform.position = ges.GetTouchToWorldPoint(10);//相机z=-10 cube 0  }
}  /// <summary>
/// 双指滑动 平面移动相机
/// </summary>
/// <param name="ges"></param>
void On_Swipe2Fingers(Gesture ges) {  Camera.main.transform.Translate(new Vector3(-ges.deltaPosition.x, -ges.deltaPosition.y, 0));
}  /// <summary>
/// 拉近拉远相机
/// </summary>
/// <param name="ges"></param>
void On_Pinch(Gesture ges) {  Camera.main.transform.Translate(new Vector3(0, 0, ges.deltaPinch));
}

}

参数还需要调整,但之前的小目标是实现了,因为容易一下子就把我的小Cube弄不见了,我就添加了一个复位按钮。

摇杆
剩下的我比较感兴趣的也就是摇杆了,毕竟这个东西挺常用,而且,如果你说要让我自己从头做一个,我还是觉得挺懵逼的···
右键EasyTouchControls->Joystick创建一个摇杆
常用的设置可能也就是Type,决定了摇杆是动态的还是静态的,静态就是坐标固定,动态的话当手指离开屏幕,摇杆会消失,手触摸的时候在手指触摸的坐标生成摇杆。
设为动态时可以选择摇杆区域全屏,半屏,还可以自定义区域。
摇杆的值

Debug.Log(ETCInput.GetAxis(“Horizontal”)+","+ ETCInput.GetAxis(“Vertical”));
1
easytouch真的十分强大方便易上手,并且跟UGUI没有什么冲突。更多的功能只有在实际使用中去研究了。

实例二
摇杆控制人物移动

创建虚拟摇杆:

好了,开始使用EasyTouch5实现角色的转向:
如下设置虚拟摇杆参数:

实现角色转动,效果:

以上是虚拟摇杆简单的应用,下面我们将实现角色第一人称的移动&转向:

好了,第一人称视角的移动+转向完成!现在通过摇杆控制角色移动,相机会跟随在角色背后。

接着是第三人称视角:

只需要将Turn&Move 选项勾选上,即可控制人物移动&转向。

完成!哈哈,是不是好简单。完全不用接触代码层面,直接通过视图面板设置,这最适合初学者不过。但是没有接触过,或者只是使用过旧版的人可能就一头雾水了。

实例三
RPG类的游戏的摇杆控制人物移动
1、以下是EasyTouch插件的使用步骤:
1.import“EasyTouch”资源包

2.创建空物体,命名为EasyTouch(当然你也可以改成其他名字)

3.添加EasyTouch.cs脚本在刚刚创建的空物体(EasyTouch)上

4.选择改物体但不要将BroadcastMessages勾选

5.创建一个新的C#脚本,命名MyFirstTouch,然后添加以下方法

void OnEnable(){
EasyTouch.On_TouchStart += On_TouchStart;
}
// Unsubscribe
void OnDisable(){
EasyTouch.On_TouchStart -= On_TouchStart;
}
// Unsubscribe
void OnDestroy(){
EasyTouch.On_TouchStart -= On_TouchStart;
}
// Touch start event
public void On_TouchStart(Gesture gesture){
Debug.Log( "Touch in " + gesture.position);
}

6.再创建一个空物体,命名为Receiver

7.将MyFirstTouch脚本添加到空物体Receiver上

8.运行并且点击遥感,会发现控制台打印了当前按下的坐标

2、根据官方的这些提示,自己来做一个属于自己的人物遥感控制

1.导入EasyTouch3资源包
2.做好前期准备,包括人物模型、地形的创建
3.添加JoyStick实例:HedgehogTeam->EasyTouch->Extensions->Add a new Joystick。此时就会在左下角创建虚拟遥感实例

5 .创建脚本MoveController.cs用来接收遥感事件控制角色的移动

using UnityEngine;
using System.Collections;

public class MoveController : MonoBehaviour {

void OnEnable()
{    EasyJoystick.On_JoystickMove += OnJoystickMove;    EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd;
}    //移动摇杆结束
void OnJoystickMoveEnd(MovingJoystick move)
{    //停止时,角色恢复idle    if (move.joystickName == "MoveJoystick")    {    animation.CrossFade("idle");    }
}    //移动摇杆中
void OnJoystickMove(MovingJoystick move)
{    if (move.joystickName != "MoveJoystick")    {    return;    }    //获取摇杆中心偏移的坐标    float joyPositionX = move.joystickAxis.x;    float joyPositionY = move.joystickAxis.y;    if (joyPositionY != 0 || joyPositionX != 0)    {    //设置角色的朝向(朝向当前坐标+摇杆偏移量)    transform.LookAt(new Vector3(transform.position.x + joyPositionX, transform.position.y, transform.position.z + joyPositionY));    //移动玩家的位置(按朝向位置移动)    transform.Translate(Vector3.forward * Time.deltaTime * 5);    //播放奔跑动画    animation.CrossFade("run");    }
}

}

6.创建点击按钮
点击HedgehogTeam->EasyTouch->Extensions->Create a new Button,会在屏幕右下角创建一个button
然后调节面板参数:

代码添加跟Unity中Button按钮添加方法类似。

最后附上研究的EasyTouch3.1.6 API
EasyTouch.On_TouchStart
函数作用:在点击的时候触发
使用例子:

public void On_TouchStart(Gesture gesture)
{
// Verification that the action on the object
if (gesture.pickObject == gameObject)
gameObject.GetComponent().material.color = new Color( Random.Range(0.0f,1.0f), Random.Range(0.0f,1.0f), Random.Range(0.0f,1.0f));
}

EasyTouch.On_TouchDown
函数作用:在按下的时候触发
使用例子:

public void On_TouchDown(Gesture gesture)
{
// Verification that the action on the object
if (gesture.pickObject == gameObject)
textMesh.text = “Down since :” + gesture.actionTime.ToString(“f2”);
}

EasyTouch.On_TouchUp
函数作用:在松开的时候触发
使用例子:

public void On_TouchUp(Gesture gesture)
{
// Verification that the action on the object
if (gesture.pickObject == gameObject)
{
gameObject.GetComponent().material.color = new Color( 1f,1f,1f);
textMesh.text =“Touch Start/Up”;
}
}

EasyTouch.On_DoubleTap
函数作用:在双击的时候触发
使用例子:

private void On_DoubleTap( Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){gameObject.GetComponent<Renderer>().material.color = new Color( Random.Range(0.0f,1.0f),  Random.Range(0.0f,1.0f), Random.Range(0.0f,1.0f));}
}

EasyTouch.On_SimpleTap
函数作用:在普通的点击时候触发
使用例子:

private void On_SimpleTap( Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){gameObject.GetComponent<Renderer>().material.color = new Color( Random.Range(0.0f,1.0f),  Random.Range(0.0f,1.0f), Random.Range(0.0f,1.0f));}
}

EasyTouch.On_LongTapStart
函数作用:在长点击的时候触发
使用例子:

private void On_LongTapStart( Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject==gameObject){gameObject.GetComponent<Renderer>().material.color = new Color( Random.Range(0.0f,1.0f),  Random.Range(0.0f,1.0f), Random.Range(0.0f,1.0f));}
}

EasyTouch.On_LongTap
函数作用:在长点击期间的时候触发
使用例子:

private void On_LongTap( Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject==gameObject){textMesh.text = gesture.actionTime.ToString("f2");}}

EasyTouch.On_LongTapEnd
函数作用:在长点击结束的时候触发
使用例子:

private void On_LongTapEnd( Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject==gameObject){gameObject.GetComponent<Renderer>().material.color = Color.white;textMesh.text="Long tap";}}

EasyTouch.On_Drag
函数作用:在拖拽期间的时候触发
使用例子:

void On_Drag(Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){// the world coordinate from touch for z=5Vector3 position = gesture.GetTouchToWordlPoint(5);transform.position = position - deltaPosition;// Get the drag anglefloat angle = gesture.GetSwipeOrDragAngle();textMesh.text = gesture.swipe.ToString() + " / angle :" + angle.ToString("f2");}
}

EasyTouch.On_DragStart
函数作用:在拖拽开始的时候触发
使用例子:

void On_DragStart( Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){gameObject.GetComponent<Renderer>().material.color = new Color( Random.Range(0.0f,1.0f),  Random.Range(0.0f,1.0f), Random.Range(0.0f,1.0f));// the world coordinate from touch for z=5Vector3 position = gesture.GetTouchToWordlPoint(5);deltaPosition = position - transform.position;}
}

EasyTouch.On_DragEnd
函数作用:在拖拽结束的时候触发
使用例子:

void On_DragEnd(Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){transform.position= new Vector3(3f,1.8f,-5f);gameObject.GetComponent<Renderer>().material.color = Color.white;textMesh.text="Drag me";}
}

EasyTouch.On_TouchStart2Fingers
函数作用:按住Ctrl然后点击的时候触发
使用例子:

void On_TouchStart2Fingers( Gesture gesture){
// Verification that the action on the object
if (gesture.pickObject == gameObject){
gameObject.GetComponent().material.color = new Color( Random.Range(0.0f,1.0f), Random.Range(0.0f,1.0f), Random.Range(0.0f,1.0f));
}
}

EasyTouch.On_TouchDown2Fingers
函数作用:按住Ctrl然后按下的时候触发
使用例子:

void On_TouchDown2Fingers(Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){  textMesh.text = "Down since :" + gesture.actionTime.ToString("f2");}
}

EasyTouch.On_TouchUp2Fingers
函数作用:按住Ctrl然后松开的时候触发
使用例子:

void On_TouchUp2Fingers( Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){  gameObject.GetComponent<Renderer>().material.color = Color.white;textMesh.text ="Touch Start/Up";}
}

EasyTouch.On_Cancel2Fingers
函数作用:按住Ctrl然后取消的时候触发
使用例子:

void On_Cancel2Fingers( Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){  gameObject.GetComponent<Renderer>().material.color = Color.white;textMesh.text ="Touch Start/Up";}
}

EasyTouch.On_SimpleTap2Fingers
函数作用:按住Ctrl然后普通点击的时候触发
使用例子:

void On_SimpleTap2Fingers( Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){  gameObject.GetComponent<Renderer>().material.color = new Color( Random.Range(0.0f,1.0f),  Random.Range(0.0f,1.0f), Random.Range(0.0f,1.0f));}
}

EasyTouch.On_DoubleTap2Fingers
函数作用:按住Ctrl然后双击的时候触发
使用例子:

void On_DoubleTap2Fingers( Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){gameObject.GetComponent<Renderer>().material.color = new Color( Random.Range(0.0f,1.0f),  Random.Range(0.0f,1.0f), Random.Range(0.0f,1.0f));}
}

EasyTouch.On_LongTapStart2Fingers
函数作用:按住Ctrl然后长点击的时候触发
使用例子:

void On_LongTapStart2Fingers( Gesture gesture){
// Verification that the action on the object
if (gesture.pickObject == gameObject){
gameObject.GetComponent().material.color = new Color( Random.Range(0.0f,1.0f), Random.Range(0.0f,1.0f), Random.Range(0.0f,1.0f));
}
}

EasyTouch.On_LongTap2Fingers
函数作用:按住Ctrl然后长点击的期间的时候触发
使用例子:

void On_LongTap2Fingers( Gesture gesture){
// Verification that the action on the object
if (gesture.pickObject == gameObject){
textMesh.text = gesture.actionTime.ToString(“f2”);
}
}

EasyTouch.On_LongTapEnd2Fingers
函数作用:按住Ctrl然后长点击结束的时候触发
使用例子:

void On_LongTapEnd2Fingers( Gesture gesture){
// Verification that the action on the object
if (gesture.pickObject == gameObject){
gameObject.GetComponent().material.color = new Color(1f,1f,1f);
textMesh.text=“Long tap”;
}
}

EasyTouch.On_Cancel2Fingers
函数作用:按住Ctrl然后长点击取消的时候触发
使用例子:

void On_Cancel2Fingers(Gesture gesture){
gameObject.GetComponent().material.color = new Color(1f,1f,1f);
textMesh.text=“Long tap”;
}

EasyTouch.On_PinchIn
函数作用:按住Next然后拖动的时候触发,缩小
使用例子:

// At the 2 fingers touch beginning
private void On_TouchStart2Fingers( Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){      // disable twist gesture recognize for a real pinch endEasyTouch.SetEnableTwist( false);EasyTouch.SetEnablePinch( true);}
}

private void On_PinchIn(Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){float zoom = Time.deltaTime * gesture.deltaPinch;Vector3 scale = transform.localScale ;transform.localScale = new Vector3( scale.x - zoom, scale.y -zoom, scale.z-zoom);textMesh.text = "Delta pinch : " + gesture.deltaPinch.ToString();}}

EasyTouch.On_PinchOut
函数作用:按住Next然后拖动的时候触发,扩大
使用例子:

private void On_PinchOut(Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){float zoom = Time.deltaTime * gesture.deltaPinch;Vector3  scale = transform.localScale ;transform.localScale = new Vector3( scale.x + zoom, scale.y +zoom,scale.z+zoom);textMesh.text = "Delta pinch : " + gesture.deltaPinch.ToString();}
}

EasyTouch.On_PinchEnd
函数作用:按住Next然后拖动结束的时候触发
使用例子:

private void On_PinchEnd(Gesture gesture){

    if (gesture.pickObject == gameObject){transform.localScale =new Vector3(1.7f,1.7f,1.7f);EasyTouch.SetEnableTwist( true);textMesh.text="Pinch me";}}

EasyTouch.On_Twist
函数作用:按住Next然后旋转的时候触发
使用例子:

// At the 2 fingers touch beginning
void On_TouchStart2Fingers( Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){          EasyTouch.SetEnablePinch( false);EasyTouch.SetEnableTwist( true);}
}// during the txist
void On_Twist( Gesture gesture){// Verification that the action on the objectif (gesture.pickObject == gameObject){  transform.Rotate( new Vector3(0,0,gesture.twistAngle));textMesh.text = "Delta angle : " + gesture.twistAngle.ToString();}
}

EasyTouch.On_TwistEnd
函数作用:按住Next然后旋转结束的时候触发
使用例子:

void On_TwistEnd( Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){EasyTouch.SetEnablePinch( true);transform.rotation = Quaternion.identity;textMesh.text ="Twist me";}
}

EasyTouch.On_Drag2Fingers
函数作用:按住Ctrl然后拖动的时候触发
使用例子:

// At the drag beginning
void On_DragStart2Fingers(Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){  gameObject.GetComponent<Renderer>().material.color = new Color( Random.Range(0.0f,1.0f),  Random.Range(0.0f,1.0f), Random.Range(0.0f,1.0f));Vector3 position =  gesture.GetTouchToWordlPoint(  5);deltaPosition = position - transform.position;}
}// During the drag
void On_Drag2Fingers(Gesture gesture){// Verification that the action on the objectif (gesture.pickObject == gameObject){  Vector3 position = gesture.GetTouchToWordlPoint(  5);transform.position = position - deltaPosition;float angles =  gesture.GetSwipeOrDragAngle(); textMesh.text = gesture.swipe.ToString() + " / angle :" + angles.ToString("f2");}
}

EasyTouch.On_DragEnd2Fingers
函数作用:按住Ctrl然后拖动结束的时候触发
使用例子:

// At the drag end
void On_DragEnd2Fingers(Gesture gesture){

    // Verification that the action on the objectif (gesture.pickObject == gameObject){          transform.position=new Vector3(2.5f,-0.5f,-5f);gameObject.GetComponent<Renderer>().material.color = new Color(1f,1f,1f);textMesh.text="Drag me";}
}

Joystick.On_Manual
函数作用:手动摇杆,参数是Vecotr2
使用例子:

Joystick.On_Manual(new Vector2(Input.GetAxis (“Horizontal”), Input.GetAxis(“Vertical”)));
1
EasyJoystick.On_JoystickMove
函数作用:移动的时候触发
使用例子:

void On_JoystickMove( MovingJoystick move){

    float angle = move.Axis2Angle(true);transform.rotation  = Quaternion.Euler( new Vector3(0,angle,0));transform.Translate( Vector3.forward * move.joystickValue.magnitude * Time.deltaTime);  model.GetComponent<Animation>().CrossFade("Run");}

EasyJoystick.On_JoystickMoveEnd
函数作用:移动结束的时候触发
使用例子:

void On_JoystickMoveEnd (MovingJoystick move)
{
model.GetComponent().CrossFade(“idle”);
}

本文地址
https://blog.csdn.net/q764424567/article/details/78426905
ps:转载请注明

作者:恬静的小魔龙
来源:CSDN
原文:https://blog.csdn.net/q764424567/article/details/78426905
版权声明:本文为博主原创文章,转载请附上博文链接!

Unity插件 EasyTouch相关推荐

  1. Unity插件EasyTouch学习笔记

    前言 EasyTouch是一款非常好用识别手机操作的插件,比如各种手势.摇杆等等,熟悉之后可以节约大量造轮子的时间. 我是在2019版本的Unity上进行测试的. 4.x用法 注意事项: 代码需要引用 ...

  2. 【Unity插件】最多的插件合集

    一.前言 ? 最近整理了一下文章,发现我分享了很多的插件,但是如果要查找某一款插件,还需要去搜索才能找到,很不方面,就想要将写过的所有的插件分享也好,教程也好,做一个汇总,然后这篇文章还会不断的更新, ...

  3. Unity插件之NGUI学习(4)—— 创建UI2DSprite动画

    创建一个新的Scene.并按 Unity插件之NGUI学习(2)创建UI Root,并在UI Root的Camera下创建一个Panel. 然后在选中Panel,在菜单中选择NGUI->Crea ...

  4. Unity插件-NGUI使用教程

    Unity插件-NGUI使用教程 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 NGUI 一款强大 ...

  5. Unity插件之NGUI学习(8)—— Table和NGUI尺寸转换为世界坐标系尺寸

    依据 Unity插件之NGUI学习(2),创建一个UI Root,在UI Root下创建一个Texture作为背景图,并设置图片,在Wiget下调整大小:然后在UI Root下再创建一个Panel. ...

  6. UNITY插件信息收集

    UNITY插件信息收集 2018.8.7 UNITY超级优化神器 : Amplify Impostors posted on 2018-08-07 20:53 时空观察者9号 阅读(...) 评论(. ...

  7. AR+LBS街景实景红包PokemonGo游戏捉妖夺宝营销解决方案定制开发暨百度高德地图Unity插件SDK

    AR+LBS街景实景红包PokemonGo游戏捉妖夺宝营销解决方案定制开发暨百度高德地图Unity插件SDK 作者 komstone https://blog.csdn.net/komstone/ar ...

  8. Unity接入穿山甲广告(使用unity插件SDK接入)看这一篇就够了

    自己做的小游戏需要接广告,之前尝试过UnityAds和AdMob,但是都有点小问题.UnityAds对国内本土支持不好,Banner广告经常没有内容.Admob基本上都要对接到googlePlay,国 ...

  9. unityar自动识别人脸_三款Unity插件带您玩转人脸识别与模拟

    原标题:三款Unity插件带您玩转人脸识别与模拟 若想让游戏或电影中的虚拟角色表现得更加真实,面部表情是至关重要的.人脸识别技术则借助真人表演来为虚拟角色赋予丰富的表情与面部动作,小至皱眉带动眼部肌肉 ...

最新文章

  1. 年收入百万美元AI科学家的烦恼与思考
  2. NFV — Overview
  3. python中一共有多少个关键字-python 查看所有的关键字
  4. IDEA 运行run 为灰色解决办法
  5. PB中获得dropdownlistbox下拉选框中选择项的序列号
  6. list下界_下界理论
  7. 阶段3 2.Spring_10.Spring中事务控制_8 spring基于纯注解的声明式事务控制
  8. 在线SAS统计分析软件使用简介(2019年最新修订)
  9. IDEA SSH工具连接方式
  10. c++除法保留小数_小学数学整数和小数的应用题解答方法公式汇总,新学期必备...
  11. 双花是什么花?区块链技术如何避免支付中的双花问题?
  12. 使用RT-Thread Studio DIY 迷你桌面时钟(二)| 获取温湿度传感器数据(I2C设备驱动+SHT3x软件包)
  13. 3d建模网上学习靠谱吗?学3d建模哪个大学好?
  14. 原装win10系统换win7系统需要改的参数
  15. PHP+Redis令牌桶算法 接口限流
  16. STC单片机获取红外解码从串口输出
  17. matlab将图片导入工作区,matlab数据的导入和导出,以matlab工作区workspace为source和destination...
  18. PYQT 按钮样式设置
  19. 前端|css制作信封之路
  20. Ubuntu下安装adobe reader

热门文章

  1. form表单数字校验(二)——邮箱校验-当前页面
  2. perl解释器的代码和用perl写出来的代码一样难看
  3. 全球与中国微创女性尿失禁仪市场深度研究分析报告
  4. Android C++ LOGE 无法输出问题
  5. 职场路上,你如何抉择
  6. RTD1619固件升级方法image烧录方法
  7. System.setProperty用法
  8. BeanUtils.setProperty()
  9. 9 Jquery 获取子孙或父级元素
  10. 我如何筛选简历与选择人员