unity

Unity 复制文本到剪切板

谁说胖子不能爱 提交于 2019-12-02 14:51:27
Unity 复制文本到剪切板 一句话代码 GUIUtility . systemCopyBuffer = "要复制的文本" ; //将文字复制到剪贴板API 复制以后在unity外,用Ctrl+v即可粘贴出复制的文本,亲测可用。 参考链接:https : / / blog . csdn . net / qq_39225721 / article / details / 90764005 over 来源: https://blog.csdn.net/weixin_44927626/article/details/102777336

Entitas--ECS框架插件

和自甴很熟 提交于 2019-12-02 13:22:00
ECS Entity、Component、System Entity Component System 模块解耦 从描述的状态上,不同的观察者会看见不同的行为,拆分不同System出来分别实现。 守望先锋 https://gameinstitute.qq.com/community/detail/114516 内存连续 通过合理组织数据利用 CPU 的缓存机制来加快内存访问数据。 举个例子,当在 Unity 中实时更新若干个 Monster 和 Player 的坐标时,往往是在 Update 中实现 transform.position = new Vector(1,2,3),即需要的数据是 Position,但是却把整个 Transform 数据加载进内存,更高几率造成 Cache Miss;此外,对应 Monster 和 Player Update 生命周期更是不可控,导致加载的数据不久后就失效,一定概率造成 Cache Miss。 上面例子中对数据的处理方式对 Cache 不友好,也对 CPU 访问内存的时间局部性不友好。 Entitas Entitas 组成 (1)Component Unity Component 包括数据和行为。 ECS Component 单纯包括数据。 (2) System Entitas 中的 System 等价于方法。 System

unity3d手机滑动效果

浪子不回头ぞ 提交于 2019-12-02 13:06:39
using UnityEngine; using System.Collections; public class TestUI : MonoBehaviour { public Vector2 scrollPosition = Vector2.zero; public float scrollVelocity = 0f; public float timeTouchPhaseEnded = 0f; public float inertiaDuration = 0.5f; public Vector2 lastDeltaPos; // Use this for initialization void Start () {} void OnGUI(){ scrollPosition = GUI.BeginScrollView(new Rect(100, 40, 600, 400), scrollPosition, new Rect(0, 0, 500, 1600), false, true); for (int i = 0; i < 32; i++){ if(GUI.Button(new Rect(0, i*50, 400, 50), "Button"+i)){} } GUI.EndScrollView(); } // Update is called once per frame

是什么在阻止我们学习unity2019?

老子叫甜甜 提交于 2019-12-02 12:33:56
背景 时过境迁,这是一篇老文,写于2019年5月。 在学习最新的unity ecs过程中,以及学习最新的effect 时,在迈出第一步的时候即遭遇一些困难(学习和测试环境搭建不起来,有时候真的很无语),造成了一种“出师未捷,身先死”的赶脚。 实现 经过不断的尝试,实验和总结,总于有了很好的解决方案。 首先描述一下问题 具体问题以 ECS为例,按照官方以及大佬的教程和样例, 1、无法通过packages manager(国内部分网络如中国移动宽带)进行必要的包下载 2、可下载大佬教程例子,但包下载冲突或者api过期无法编译(初学者直接蒙逼,一声叹息!) 问题1的原因,unity 2018版本后推出了Package manager进行自己开源和第三方开源的包和插件的管理(类似.net nuget,又跟风) 大概可以定位到Package manager 用了一种本地代理的技术进行包下载,鉴于国内恶略的网络环境出现问题也是正常,解决方案 其实就是两种 a、土豪法,直接给网络搞定,这个就不用我多说了,土豪都懂得 b、屌丝法 又分为三个方法 1) 直接通过 packages 的mainfast.json配置文件进行包管理,目前github 下载下来的工程基本默认是这种方式,但是还是会出现不好用的情况(其实出现这种问题可以归结到问题2,这个在问题也是的解决方法中,描述解决方法) 2)

unity 四边形多点矫正

感情迁移 提交于 2019-12-02 11:49:16
using System.Collections; using System.Collections.Generic; using System.Threading; using UnityEngine; [System.Serializable] public class fangkuai{ public Vector3 a; public Vector3 b; public Vector3 c; public Vector3 d; } public class xiangliang : MonoBehaviour { public GameObject game; public Vector3 a; public Vector3 b; public Vector3 c; public Vector3 d; public Vector3 p; [Header("设置横竖向校准点个数")] public int Width; public int Height; private int w; private int h; void Start() { if (Width <= 2) Width = 2; if (Height <= 2) Height = 2; w=Width-1; h=Height-1; a = sa.position; b = sb.position; c =

我的第一个Unity工程

眉间皱痕 提交于 2019-12-02 11:37:17
前天是1024程序员节,看到一个问题:“你为什么学计算机?”,不禁想起自己学习计算机的初衷。其实,当年我力排众议,选择计算机这个专业,其实是因为想开发游戏。转眼间,大学毕业三年多了,玩过的手游,端游数以百计,但是尚未接触过游戏开发。做Android开发3年多了,3年可能对于很多开发人员来说,是一个坎。作为一名计算机专业毕业的学生,作为一个编码和游戏爱好者,我觉得,有必要学习一下游戏开发了。从今天开始,我开始学习Unity游戏开发,并且把自己所学及时的总结一下。 一.创建Project 首先,我们创建一个project,这是必要的一个步骤。打开unity,选择File,new project,填写项目名(例如MyFirstUnity),选择3D,创建我们的第一个项目: 二.Project简介 unity的基本视图:scene(场景),game(游戏),hierarchy(GameObject),inspector(属性),project(项目)。 1.GameObject: 在hierarchy视图中右键,选择3D,cube,创建一个立方体的GameObject: 2.Transform: unity中一个GameObject是由多个component控制的。默认会有一个transform的component,控制GameObject的位置、旋转角度以及缩放倍数。 3.Assets:

Unity 读取Json常用的两种方式

被刻印的时光 ゝ 提交于 2019-12-02 11:06:34
使用的是Litjson 1、读取本地Json public void ReadJson() { StreamReader streamReader = new StreamReader(Application.dataPath + "/XXX.json"); string str = streamReader.ReadToEnd(); json = JsonMapper.ToObject(str); } 2、请求http( 强烈建议先下载到本地再读取 ) private IEnumerator GetInterface(string uri) { using (UnityWebRequest webRequest = UnityWebRequest.Get(uri)) { yield return webRequest.SendWebRequest(); if (webRequest.isNetworkError) { Debug.LogError(uri + "请求错误:" + webRequest.error); } else { Debug.Log(webRequest.downloadHandler.text); //保存本地 string savePath = Application.streamingAssetsPath + "XXX.json"; File

unity实现HTTP请求

左心房为你撑大大i 提交于 2019-12-02 11:05:31
unity中UnityWebRequest和WWW都可以实现HTTP请求,下面举例说明两种方法分别实现Get和Post请求 1、UnityWebRequest实现HTTP请求 Get请求 IEnumerator GetRequest(string url) { using (UnityWebRequest webRequest = UnityWebRequest.Get(url)) { yield return webRequest.SendWebRequest(); if (!string.IsNullOrEmpty(webRequest.error)) { Debug.LogError(webRequest.error); } else { Debug.Log(webRequest.downloadHandler.text); } } } Post请求 IEnumerator PostRequest(string url) { WWWForm form = new WWWForm(); form.AddField("name", "posttest"); using (UnityWebRequest webRequest = UnityWebRequest.Post(url, form)) { yield return webRequest.SendWebRequest();

unity热更新框架Xlua--自定义Loader方式

夙愿已清 提交于 2019-12-02 09:14:06
本博客根据51CTOscholl刘国柱老师网课编写,小白笔记,侵权必删 创建C#脚本: using System.Collections; using System.Collections.Generic; using UnityEngine; using XLua; using System.IO; public class RunluaBySelfDefloader : MonoBehaviour { //lua环境 LuaEnv env = null; private void Start() { env = new LuaEnv(); env.AddLoader(CustomMyLoader); env.DoString("require'CustomDIRLuaFile'"); } /// <summary> /// //定义回调方法 /// 功能: /// 本方法主要功能自定义lua文件路径 /// </summary> /// <param name="filepath"></param> /// <returns></returns> private byte[] CustomMyLoader(ref string filepath) { byte[] byArrayReturn = null; //定义文件路径 string luaPath =

Unity对象池 垃圾回收机制

时光毁灭记忆、已成空白 提交于 2019-12-02 06:19:30
//对象池 对象池的使用类 挂在在摄像机上 using System.Collections; using System.Collections.Generic; using UnityEngine; public class GameController : MonoBehaviour { public int row = 6; public Vector2 offset = new Vector2(); public GameObject cubPrefab; public GameObject bulletPrefab; private RaycastHit hit; public float speed=3; void Start () { //生成墙 for (int i = 0; i < row; i++) { for (int j= 0; j < row; j++) { Instantiate(cubPrefab, new Vector3(i, j, 0)+new Vector3(offset.x,offset.y,0), Quaternion.identity); } } } // Update is called once per frame void Update () { if (Input.GetMouseButtonDown(0)) { Ray ray =