zoukankan      html  css  js  c++  java
  • NGUI研究之在Unity中使用贝塞尔曲线

    鼎鼎大名的贝塞尔曲线相信大家都耳熟能详。这两天由于工作的原因须要将贝塞尔曲线加在project中。那么我迅速的研究了一下成果就分享给大家了哦。贝塞尔曲线的原理是由两个点构成的随意角度的曲线,这两个点一个是起点,一个是终点。在这条曲线之上还会有两个能够随意移动的点来控制贝塞尔曲线的角度。例如以下图所看到的。点1 和点4 就是起点和终点,点2 和点3 就是控制曲线角度的两个动态点。

    上一章分享了开发项目的一些使用心得比較细节 对新手非常实用能够看下。

    NGUI研究之在Unity中使用贝塞尔曲线(六) - 第1张  | 成功智慧网-专注游戏编程开发!</p><p>

    例如以下图所看到的。使用拖动条来让曲线发生旋转,大家会看的更加清晰。

    眼下我们看到的被塞尔曲线是在平面中完毕的。事实上贝塞尔曲线是全然支持3D中完毕。这里是为了让大家看的更加清晰我将忽略Z曲线的Z轴。

    UnityAPI文档中有贝塞尔曲线的方法,但是仅仅支持编辑器中使用,也就是说无法在程序中使用。那么本篇文章我们利用贝塞尔曲线的数学原理以及LineRenderer组件来完毕在Unity中使用贝塞尔曲线。

    NGUI研究之在Unity中使用贝塞尔曲线(六) - 第2张  | 成功智慧网-专注游戏编程开发。

    创建一个U3D的project,创建一个新游戏对象,绑定LineRenderer组件。

    Bezier.cs 这里是贝塞尔曲线的公式C#版本号

    MyBezier.cs 把它直接挂在摄像机上 ,控制拖动条来控制贝塞尔曲线、

    OK 这里贝塞尔曲线的原理就已经完毕。以下我们学习在NGUI中怎样使用贝塞尔曲线。刚刚我们说过贝塞尔曲线是由2个固定点 加两个动态点来完毕的,事实上我们在开发中往往仅仅须要3个点。

    1 起点 2 中间点 3 结束点 拖动这三个点都能够又一次计算曲线的轨迹这样才比較完美。例如以下图所看到的。这三个点都是能够随意拖动的。拖动结束后,黑色的线为用户拖拽点连接的直角线段。我们依据这三个点组成的直角线段计算它们之间的贝塞尔曲线,也就是图中黄色的线段。

    NGUI研究之在Unity中使用贝塞尔曲线(六) - 第3张  | 成功智慧网-专注游戏编程开发。

    简单的进行拖拽一下,是不是感觉贝塞尔曲线非常酷炫呢?哇咔咔。

    NGUI研究之在Unity中使用贝塞尔曲线(六) - 第4张  | 成功智慧网-专注游戏编程开发!</p><p>

    我们来看看代码实现的部分,事实上原理和上面全然一样。

    BallMove.cs绑定在这三个能够拖拽的点上,让拖动小球后小球可尾随手指移动。

    如此一来触摸小球后,小球将尾随用户手指移动。以下我们将监听用户触摸小球后的坐标来计算它们三点之间的贝塞尔曲线。

    BallInit.cs挂在摄像机上

  • 相关阅读:
    【Azure 应用服务】由 Azure Functions runtime is unreachable 的错误消息推导出 ASYNC(异步)和 SYNC(同步)混用而引起ThreadPool耗尽问题
    【Azure API 管理】是否可以将Swagger 的API定义导入导Azure API Management中
    【Azure 应用服务】Azure Function 不能被触发
    【Azure 环境】Azure Key Vault (密钥保管库)中所保管的Keys, Secrets,Certificates是否可以实现数据粒度的权限控制呢?
    【Azure 事件中心】为应用程序网关(Application Gateway with WAF) 配置诊断日志,发送到事件中心
    【Azure 事件中心】azure-spring-cloud-stream-binder-eventhubs客户端组件问题, 实践消息非顺序可达
    【Azure API 管理】Azure API Management通过请求中的Path来限定其被访问的频率(如1秒一次)
    【Azure 环境】前端Web通过Azure AD获取Token时发生跨域问题(CORS Error)
    【Azure 应用服务】记一次Azure Spring Cloud 的部署错误 (az spring-cloud app deploy -g dev -s testdemo -n demo -p ./hellospring-0.0.1-SNAPSHOT.jar --->>> Failed to wait for deployment instances to be ready)
    【Azure 应用服务】App Service中抓取 Web Job 的 DUMP 办法
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5128596.html
Copyright © 2011-2022 走看看