- 博客(45)
- 资源 (13)
- 收藏
- 关注
转载 Unity优化之GC——合理优化Unity的GC
Unity优化之GC——合理优化Unity的GC转载:Unity优化之GC——合理优化Unity的GC - zblade - 博客园
2022-03-27 20:18:52
447
转载 用好lua+unity,让性能飞起来——lua与c#交互篇
用好lua+unity,让性能飞起来——lua与c#交互篇 - UDD_William - 博客园
2022-03-20 17:04:42
227
原创 Alias Method别名算法 根据概率分布获取随机对象
public class AliasMethod{ /* The probability and alias tables. */ private int[] _alias; private double[] _probability; public AliasMethod(List<Double> probabilities) { ...
2019-11-08 19:11:48
732
原创 Unity Catmull-Rom曲线
Catmull-Rom可以平滑的通过所有的标志点。public static Vector3 CatmullRomPoint(Vector3 p0, Vector3 p1, Vector3 p2, Vector3 p3, float t){ return p1 + (0.5f * (p2 - p0) * t) + 0.5f * (2f * p0 - 5f * p1 + 4f * ...
2018-12-25 17:13:41
1239
原创 Unity 获取Game View的分辨率
/// <summary> /// 获取Game View的分辨率 /// </summary> /// <param name="width"></param> /// <param name="height"></param>
2018-09-08 14:30:23
3079
1
原创 Unity 移动端 滑动屏幕旋转
float firstPosX = 0f; float currentRotY = 0f;public GameObject roleObj = null; private void __RoleRotation(float detalTime) { if( Input.touchCount == 1 ) { if( Input.GetTouch...
2018-06-13 17:33:44
5119
转载 Android studio Button注册事件的方法
添加按钮点击事件方法一:1. 在布局中添加一个按钮,ID为button2. 在MainActivity.java中的头文件中添加importandroid.widget.*;3. 在主类中添加按钮和其他所需类TextView textview;Button button;4. 在onCreat中添加按钮监听函数5.
2017-12-26 10:33:12
2335
转载 Android mainfest 详解
一、关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Inte
2017-12-25 11:57:30
974
原创 Unity获取串口数据
using System.Collections;using System.Collections.Generic;using UnityEngine;using System.IO.Ports;using System;using System.Threading;using UnityEngine.UI;public class PortManager {
2017-12-18 13:48:05
3310
3
原创 设置一个Plane到相机的viewport
private void SetPlane(Transform plane) { float halfFOV = ( theCamera.fieldOfView * 0.5f ) * Mathf.Deg2Rad; float aspect = theCamera.aspect; float height = (theCamera.farClip
2017-12-15 16:37:49
257
原创 Unity打Android包的坑
一、屏幕旋转之后,程序闪退 这是由于横竖屏转换导致activity重跑onCreate方法导致的,有两种解决方案:1、横竖屏转换的时候不要重新跑onCreate方法,这个可以在manifest.xml的对应activity中增加这个属性:“android:configChanges="orientation|screenSize"”;2、禁止横竖屏转换,在mani
2017-12-11 09:57:22
482
转载 Android Studio 导出aar包供Unity调用
前言 项目之前使用Eclipse导出的jar文件来做与Android交互,最近因为工作需要需使用Android Studio的aar文件,网上参考了部分文章,也结合自己的理解重新整理一下具体的方法,通过写一个测试Demo来表述Android Studio创建aar的过程与及Unity如何使用aar文件,希望对刚好有这个需求的人能起到部分帮助与引导,同时如果文中有误希望也能不吝赐教。
2017-12-05 16:05:48
613
转载 Android studio 打出aar包
Android Studio如何导出可供Unity使用的aar插件详解前言 项目之前使用Eclipse导出的jar文件来做与Android交互,最近因为工作需要需使用Android Studio的aar文件,网上参考了部分文章,也结合自己的理解重新整理一下具体的方法,通过写一个测试Demo来表述Android Studio创建aar的过程与及Unity如何使用aar文件,
2017-11-24 15:51:14
760
原创 unity 判断是否点击到了UI上
//判断是否点击到了UI上 public bool IsPointerOverUIObject(Vector2 screenPosition) { PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current); eventDataCurrent
2017-10-19 09:15:41
1182
转载 unity3D获取屏幕宽高
这里要用到一个摄像机函数Camera.ViewportToWorldPoint, Unity官方对其定义为: Camera.ViewportToWorldPoint 视窗转世界位置 function ViewportToWorldPoint (position : Vector3) : Vector3Description描述Transforms position from
2017-10-14 09:39:52
2548
转载 Unity+Android+讯飞SDK
1,讯飞官网创建应用程序可参考:github.com/wwnje/GitBook/blob/master/unity/demo/unity_xfyun.md2,创建android studio 项目 以下简称as3,将讯飞sdk下载解压,libs文件夹里面的 msc.jar 和unity class.j
2017-09-25 09:44:05
1245
转载 Unity截屏方法
下面是我总结的、在u3d中的,三种截屏方法:1、使用Application类下的CaptureScreenshot方法。[csharp] view plain copyvoid CaptureScreen() { Application.CaptureScreenshot("Screenshot.png", 0)
2017-09-22 17:12:55
259
转载 C#使用MonoPInvokeCallback,让C直接回调C#函数
iOS代码:Test.mmchar* TestMakeCString(NSString *str) { const char* string = [str UTF8String]; if (string == NULL) { return NULL; } char* res = (char*)malloc(strlen(string)
2017-09-19 19:13:09
3337
原创 N个控制点的贝塞尔曲线
//输入n个标志点,根据时间t(0 <= t <=1) 获取曲线上的坐标点 Vector3 CalculatePath(List points, float t) { Vector3 tempPos = Vector3.zero; for (int i = 0; i < points.Count; i++) { tempPos +=
2017-08-28 14:47:43
1926
转载 Unity调用Android的Java方法
现在网上的Unity与Android通信的教程,要么是Unity版本不是较新的,要么使用的是Eclipse配置Android。写这篇博文主要是简单说明一下Unity5.3.6和Android Studio2.4的配置,来完成Unity脚本(C#)与Android脚本(Java)的交互通信。PS:以下详细操作截图是本人的真实操作,能考虑到的重点已经说明,如果存在其他问题,大家可以指出,共同进步!
2017-08-09 17:16:40
4541
4
原创 将虚拟按钮映射到屏幕上
由于项目需求,自己做了一个小demo,把识别图上的虚拟按钮映射到屏幕上。按钮的位置和虚拟按钮保持一致,大小根据相机距离进行调节。void GetVertex(Transform[] Vbtns,Button[] Ubtns) { for (int i = 0; i < Vbtns.Length; i++) { Vector3[] vertexs = ne
2017-07-11 16:46:49
1374
转载 Vuforia开发高阶四-Multiple Target(立方体识别)
Multiple Target是一个矩形的盒子,有六个面,尺寸需要设置3个,分别是长宽高。这个功能和之前说的Cylinder Target类似,只要可以用在包装盒中,同样具有虚实遮挡的功能。但是,相对于Cylinder Target来说,她有一个特性:从不同的面看出去,看到的场景是不同的。而Cylinder是一个整体的场景,也就是说他是一个面。 1、更换模型 和
2017-06-10 14:09:25
2328
转载 Vuforia开发高阶三-用户自定义Target(第二部分)
前面介绍UDT基础开发,这里介绍怎么使用UDT的多Target对应不同模型的问题。 对于UDT的示例,我觉得有必要把这个类单独拿出来讲一下, UserDefinedTargetEventHandler:这种类型的类在Vuforia的API中很常见。Event Handler可以理解为事件控制器。 复制代码using UnityEngine;using Syst
2017-06-10 14:08:52
1167
转载 Vuforia开发高阶三-用户自定义Target(第一部分)
关于(用户自定义)UDT示例的开发,使用u3d的步骤和ImageTarget的类似。一般的ImageTarget示例,制作自己需要的内容,最基本的两步操作是更换Target和更换模型,但是在自定义的时候,Target是实时获取的,不需要事先准备,更换模型的操作步骤还是一样的。 UDT实现的原理: 这里会有两个新的类:ImageTargetBuilder 和 ImageTargetBui
2017-06-10 14:07:22
912
转载 Vuforia开发高阶二-虚拟按钮(第四部分)
第四部分: 虚拟按钮判断原理。 知道这个原理之后,你才能更好地设计出虚拟按钮。 Vuforia采用的注册算法也是基于自然特征点。在Vuforia官网的TargetManager中,可以看到每个标志的特征点情况,并且通过其他文章也可以知道怎么才能提高Target的识别率, 参见: 以demo中的Target为例, 原图: 特征点检测图: 注意四个虚
2017-06-10 14:06:34
752
转载 Vuforia开发高阶二-虚拟按钮(第三部分)
第三部分: 既然虚拟按钮的事件可以被检测到,那么可以像正常的按钮一样,执行长按短按,或者双击之类的操作。这里以判断虚拟按钮长按还是短按为例。 主要的实现原理是通过判断触发持续的时间长短。 复制代码using UnityEngine;using System.Collections;using Vuforia; public class MyButtonControl
2017-06-10 14:05:34
567
转载 Vuforia开发高阶二-虚拟按钮(第二部分)
public class MyVirtualButtonControl : MonoBehaviour,IVirtualButtonEventHandler{ #region PUBLIC_MEMBER_VARIABLES public ImageTargetBehaviour imageTargetBehaviour; public AudioSource
2017-06-10 14:04:33
444
转载 Vuforia开发高阶二-虚拟按钮(第一部分)
第一部分: 在Vuforia的所有功能中,虚拟按钮是唯一一个交互的功能,而且这个功能相当精彩,使用它可以开发很多有趣的应用。 使用虚拟按钮demo,会有两个疑问: 1、按钮位置怎么确定的? 2、按钮怎么检测到的? 首先给大家介绍按钮位置的确定。 有两种方式: 1、自己通过公式计算。 对于这种方式,只用做研究使用。实际开发过程中,不需要这么复杂。但是计算方
2017-06-10 14:02:29
858
转载 Vuforia开发高阶一-VideoPlayback(视频播放)
使用Vuforia自定义ImageTarget案例比较简单,拖进去几个预制(preferb)就好了。 例如:ImageTarget,ARCamera 但是如果想添加VideoPlayback的案例时,直接再ImageTarget子目录下添加Video预制是不可以的。还需要绑定一些特定的脚本。 比如PlayVideo和VideoPlaybackUIEventHandler。
2017-06-10 13:50:12
1105
转载 Vuforia开发基础(八):粒子系统
粒子系统:粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其它传统的渲染技术难以实现的真实感的 game physics。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果等等。 AR场景给人带来的印象是视觉效果十分强烈,当然这也少不了粒子特效的功劳。 在AR场景中添加粒子系统,主要分为两步来完成
2017-06-10 13:47:26
344
转载 Vuforia开发基础(七):动画系统
Unity3D动画系统主要有两种:Animator和Animation. Animation: Animation Clip 动画剪辑 对于Animation Clip可以进行动画分割 对于每一个clip,在使用脚本来控制播放。 Animator: 任何一个拥有avatar的GameObject都将拥有一个Animator组件用来连接角色和他的行为。 Anima
2017-06-10 13:46:09
686
转载 Vuforia开发基础(六):音频
在学会利用U3d处理音频之后,看下面的教程。 1、虚拟按钮 结合Vuforia 虚拟按钮制作教程,在该方法下添加对应事件。 复制代码/// /// Called when the virtual button has just been pressed: /// public void OnButtonPressed(VirtualButtonAbs
2017-06-10 13:44:41
507
转载 Vuforia开发基础(五):模型交互
最后再来说说模型怎么交互。模型交互主要还是以下这些交互方式: 主要的交互方式包括: 1、模型的旋转、平移和缩放 这些需要配合触屏来操作。 2、模型的选定-射线法 模型选定之后显示高亮边框 3、模型动画的操作 使用代码,控制模型坐标等 使用Unity3d动画系统来完成 4、音频、文字等 使用Unity3D自带的组件完成 NGUI 5、其他 填色板等
2017-06-10 13:43:19
2031
转载 Vuforia开发基础(四):模型选定与控制
public class RayPick : MonoBehaviour { public Material[] mats; public Texture[] texs; int i = 0; // Use this for initialization void Start () {
2017-06-10 13:41:57
866
转载 Vuforia开发基础(三):模型替换
一般使用Vuforia开发AR应用,涉及到3D模型时,目前最主要的开发工具还是Unity3D。对于Android和iOS原生开发的3D模型的处理,比较复杂,而且效果不好。 另外,可以在Android上实现使用第三方的游戏引擎来渲染3D模型,比如jpct-ae。当然这个效果还是不及Unity3D,用来做做研究还是可以的。有需要的话,后期也会把教程和源码放出来,敬请期待。 Unity3D导
2017-06-10 13:39:06
1220
转载 Vuforia开发基础(二):官方demo解析
前面一篇文章《官方Demo编译运行》,介绍了一些编译运行的操作。由于Vuforia的demo比较多,有如下这些: 核心案例(Core Samples): · Object Recognition · Image Targets · Cylinder Targets · Multi Targets · User Defined Targets · Smart Terrai
2017-06-10 11:50:54
2078
1
服务器终端工具
2019-02-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人