2016-05-23 15:26:44 u010334545 阅读数 6745

1.实现Unity3d中触摸屏幕控制物体的移动 代码实现

using UnityEngine;

using System.Collections;

public class haha : MonoBehaviour {
    public float speed = 0.01F;
    void Update()
    {
        if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)
        {
            Vector3 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
            transform.Translate(-touchDeltaPosition.x * speed, touchDeltaPosition.y * speed, 0);
        }
    }
}
2017-11-25 11:03:54 q764424567 阅读数 1364
Unity判断手势触摸的类型 ,判断手势的滑动方向,并获取刚触摸以及触摸结束事的坐标

Unity判断手势触摸的类型 ,判断手势的滑动方向,并获取刚触摸以及触摸结束事的坐标

本章咱们一起来看下unity对有触摸手势做出的响应

单点触摸

Input.touchCount==1

移动触摸

Input.GetTouch(0).phase==TouchPhase.Moved

多点触摸

Input.touchCount>1

判断两只手指至少有一只为移动触摸

Input.GetTouch(0).phase==TouchPhase.Moved||Input.GetTouch(1).phase==TouchPhase.Moved

 

/**

     * 判断是否为单点触摸

 public static bool singleTouch()

    {

        if(Input.touchCount==1)

            return true;

        return false;

    }

    /**

     * 判断单点触摸条件下  是否为移动触摸

 public static bool moveSingleTouch()

    {

        if (Input.GetTouch(0).phase==TouchPhase.Moved)

            return true;

        return false;

    }

 

    /**

     *判断是否为多点触摸 

 public static bool multipointTouch()

    {

        if (Input.touchCount > 1)

            return true;

        return false;

    }

 

    /**

     *判断两只手指至少有一只为移动触摸

public static bool moveMultiTouch()

    {

        if (Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved)

            return true;

        return false;

}

 

/**

     * 

     * 新建一个公共方法用于判断手指的移动方向 

     * 假如是往左或者往上 则模型往各个轴的正方向位置移动 函数返回1

     * 加入是往右或者往下 则模型往各个轴的负方向位置移动 函数返回-1

     * 

     * **/

int judueFinger(){

        if (Input.GetTouch(0).phase == TouchPhase.Began && startPosFlag == true)

        {

            //Debug.Log("======开始触摸=====");

            startFingerPos = Input.GetTouch(0).position;

            startPosFlag = false;

        }

        if (Input.GetTouch(0).phase == TouchPhase.Ended)

        {

            //Debug.Log("======释放触摸=====");

            startPosFlag = true;

        }

        nowFingerPos = Input.GetTouch(0).position;

        xMoveDistance = Mathf.Abs(nowFingerPos.x - startFingerPos.x);

        yMoveDistance = Mathf.Abs(nowFingerPos.y - startFingerPos.y);

        if (xMoveDistance>yMoveDistance)

        {

            if(nowFingerPos.x-startFingerPos.x>0){

                //Debug.Log("=======沿着X轴负方向移动=====");

                backValue = -1;         //沿着X轴负方向移动

            }

            else

            {

                //Debug.Log("=======沿着X轴正方向移动=====");

                backValue = 1;          //沿着X轴正方向移动

            }

        }

        else

        {

            if (nowFingerPos.y - startFingerPos.y>0)

            {

                //Debug.Log("=======沿着Y轴正方向移动=====");

                backValue = 1;         //沿着Y轴正方向移动

            }else{

                //Debug.Log("=======沿着Y轴负方向移动=====");

                backValue = -1;         //沿着Y轴负方向移动

            }

        }

        return backValue;

    }
2020-01-14 17:57:13 qq_19714407 阅读数 26

Unity3D UGUI锚点布局知识

好久没碰unity3d UGUI的东西了,刚好回顾下以前知识,做个总结

UGUI的锚点,布局概念

unity中的ui元素是有严格的父子关系的,子物体的位置是根据父物体的变化而变化的,而子物体和父物体联系的桥梁就是Anchor。ugui的UI控件都会有个RectTransform的组件,你可以从这个组件里获取锚点和布局信息,Anchor在Recttransform面板中表现为
两个值:anchorMax,anchorMin (默认左下角为0,0点,右上角为1,1点)
在这里插入图片描述
四个锚点在一起那么两个值就是:anchorMin(0.5,0.5),anchorMax(0.5,0.5)

我们再理解下绝对布局以及相对布局这两个概念,绝对布局如下图:在这里插入图片描述
在这附图上圈住的中间九种布局样式,它们上方的参数会是这几个PosX,PosY,PosZ,Width,Height参数,首先说说Width和Height,它俩个表示在这些绝对布局的情况下无论分辨率是多少,父物体多大,该UI元素的大小是恒定的,而剩下的PosX,PosY,PosZ表征的就是Pivot (接下来会有Pivot的讲解) 到锚点的距离

其他的样式都是相对布局,比如我们选最后一个布局样式,参数表现如下图:
在这里插入图片描述
left,right,top,bottom就代表了该UI控件左右上下边距离四个锚点所形成的锚框的左右上下边的距离,其他一些相对布局样式参数意义类似,不再熬述。

RectTransform 组件相关参数意义

1.pivot

如图所示,如果pivot 设置在左下角,就是(0,0),右上角就是(1,1),默认为正中心位置(0.5,0.5)
在这里插入图片描述

2.OffsetMax,OffsetMin

如图:在这里插入图片描述
这个OffsetMin的值就是UI元素的左下角的坐标,减去AnchorMin的值,得到一个从AnchorMin指向元素左下角的向量(vector2类型),这个OffsetMax的值就是UI元素的右上角的坐标,减去AnchorMax的值,得到一个从AnchorMax指向元素右上角的向量(vector2类型),那么这两个值有什么用呢,因为这两个值是可读可写的,所以在锚框的情况下我们可以在代码里面动态的去调整UI元素相对边界的距离,其次更重要的是,利用这这两个值就可以计算出sizeDelta的值了!

3.sizeDelta

sizeDelta=OffsetMax-OffsetMin,得到的是一个vector2类型的值,那么这个值在绝对布局和相对布局下的意义是什么呢?绝对布局下其实就代表了UI控件的长和宽,相对布局 大家结合上面两个参数的图例自行思考一下。

4.rect

rect中的属性,不与UI控件所在的位置有关,只和其自身属性相关,所以其中的width和height属性就可以让我们在任何情况下取得元素的大小

5.anchorPosition

在绝对布局下,anchorPositon表示的是pivot点在以锚点为坐标原点的坐标系下的坐标,如果在相对布局下表示的就是pivot点在以锚框中心点为坐标原点的坐标系下的坐标,我们可以通过改变anchorPosition的值直接改变UI控件位置,例如 在绝对布局下用代码 anchorPosition=new vector2(0,-100),它的效果如图:
在这里插入图片描述

2019-03-01 09:55:18 qq83833224 阅读数 318

Unity3D引擎技术点图谱

这图是对Unity3D引擎(版本5)的技术点罗列,未涉及到具体点的相关只是,可以将其当做自身知识体系的梳理对照图来看。
在这里插入图片描述

参考

2019-09-22 14:05:19 fengliaoai 阅读数 12206

每周更新unity3d视频教程,从入门到就业,官方unity3d培训,上千门实时更新课程,供学员在线观看学习,unity3d游戏开发,可以让学员随时随地学习!
免费网上学习unity3d自学教程,国内名师机构专业授课,O基础快速学习,1小时快速入门,7天unity3d自学教程学习,能力快速提升,优质作品随手呈现!

unity3d菜鸟自学教程介绍

unity3d难学吗?

unity3d自学教程目录

unity3d视频教程百度网盘下载

unity3d难学吗?
学习unity3d特效,多来学习路线网看教程,一线游戏特效老师,游戏特效就业安排!学习unity3d特效入门+进阶+精通选择专业才能学得专业!

unity3d自学教程目录
课程介绍:
Unity3d史诗 MMO ARPG 课程《泰斗破坏神》,精心设计将包含200+课时,由视频课时+直播课时+测试课时混合组成。最重头unity3d ARGP课程,完整的 ARPG 网络游戏开发教学。包含多人合作,在线多人游戏开发,角色创建系统,作战系统,RPG系统,技能系统,任务系统,商店系统。

课程大纲:

单机版功能实现

项目概要
登录系统
角色创建、选择、自定义系统
场景加载与游戏存储记录
角色控制
聊天通讯
游戏AI
战斗系统
游戏角色与玩家信息系统
商店系统
道具系统
装备系统
装备与道具掉落
仓库与背包系统
副本系统
任务系统
地图与寻路系统

网络版功能实现

服务端搭建
登录系统
角色选择
游戏场景
聊天功能
角色具体信息
商店系统
道具系统
装备系统
仓库和背包
副本系统
任务系统

unity3d视频教程百度网盘下载
http://www.xuexiluxian.net/unity3d-cainiao-zixue.html

Unity3d官网链接失效

阅读数 2052

Unity3D的多点触摸

阅读数 1403

没有更多推荐了,返回首页