Unity两个物体之间动态生成圆柱

[Unity]风铃悬挂物体实现 本文可以实现类似 手游《割绳子(Cut the Rope)》的效果。具体细节得深入完善。 绳子的效果 在相关资料1里面。 可以实现什么效果,流星锤,双节棍,灯笼,绳子悬挂的物体,兽人必须死里面 的很多天花板的陷阱、巨槌钟摆 陷阱 ,等 参考资料1,2 使用的组件 主要是 刚体rigidbody,铰链关节hinge joint 圆柱体 没有设置刚体, 第一个正方体 的... 阅读详情
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {
    public GameObject obj1;
    public GameObject obj2;
    // Use this for initialization
    void Start () {
		
	}
	
	// Update is called once per frame
	void Update ()
    {
        drawCylinder(obj1.transform.position,obj2.transform.position);

    }
    private Dictionary<int, Mesh> _meshMap = new Dictionary<int, Mesh>();
    private void drawCylinder(Vector3 a, Vector3 b)
    {
        float length = (a - b).magnitude;

        Graphics.DrawMesh(getCylinderMesh(length),
            Matrix4x4.TRS(a, Quaternion.LookRotation(b - a), Vector3.one),obj1.GetComponent<MeshRenderer>().material
            ,
            gameObject.layer);
    }//通过obj1.GetComponent<MeshRenderer>().material改圆柱材质
    private Mesh getCylinderMesh(float length)
    {
        int lengthKey = Mathf.RoundToInt(length * 100 / 12);

        Mesh mesh;
        if (_meshMap.TryGetValue(lengthKey, out mesh))
        {
            return mesh;
        }

        mesh = new Mesh();
        mesh.name = "GeneratedCylinder";
        mesh.hideFlags = HideFlags.DontSave;

        List<Vector3> verts = new List<Vector3>();
        List<Color> colors = new List<Color>();
        List<int> tris = new List<int>();

        Vector3 p0 = Vector3.zero;
        Vector3 p1 = Vector3.forward * length;
        for (int i = 0; i < 12; i++)
        {
            float angle = (Mathf.PI * 2.0f * i) / 12;
            float dx = 0.2f * Mathf.Cos(angle);//通过更改0.2数值更改x方向半径
            float dy = 0.2f * Mathf.Sin(angle);//通过更改0.2数值更改y方向半径

            Vector3 spoke = new Vector3(dx, dy, 0);

            verts.Add((p0 + spoke) * transform.lossyScale.x);
            verts.Add((p1 + spoke) * transform.lossyScale.x);

            colors.Add(Color.red);
            colors.Add(Color.red);

            int triStart = verts.Count;
            int triCap = 12 * 2;

            tris.Add((triStart + 0) % triCap);
            tris.Add((triStart + 2) % triCap);
            tris.Add((triStart + 1) % triCap);

            tris.Add((triStart + 2) % triCap);
            tris.Add((triStart + 3) % triCap);
            tris.Add((triStart + 1) % triCap);
        }

        mesh.SetVertices(verts);
        mesh.SetIndices(tris.ToArray(), MeshTopology.Triangles, 0);
        mesh.RecalculateBounds();
        mesh.RecalculateNormals();
        mesh.UploadMeshData(true);

        _meshMap[lengthKey] = mesh;

        return mesh;
    }
}

 

学习笔记:unity通过Mesh网格绘制图形:三角形&正方体&圆柱 一,介绍 Mesh类:通过脚本创建或是获取网格的类,网格包含多个顶点和三角形数组。顶点信息包含坐标和所在面的法线。 unity中3D的世界的所有图形全部都是由三角形构成的。 比如unity已经装配好的几种图形我们可以看一下: 我们可以在unity中通过Mesh类来绘制图形。 所以在我们绘制其它图形之前,首先完成一个小目标,画一个三角形。 二,绘制三角形 首先做准备工作: 1.在场景中创建一个空物体,并挂载MeshRenderer和MeshFilter组件。//我们先不考虑碰撞器的问题,所以不添加colli 阅读详情

相关推荐

【Vuforia+Unity】AR03-圆柱体物体识别(Cylinder Targets)

这个是让我们把生活中类似圆柱体和圆锥体的物体进行AR识别所选择的模型。剩下的步骤和前面一样,下载数据库,放到Unity中。

leoysq的博客 1121

Unity3D绘制两圆柱体相贯线

1 相贯线   项目中需要用代码去绘制两个圆柱体相贯线,花了两天时间可算整明白怎么画了。国内有关这方面的文章不多,所以花了这么多时间,我这里总结一下,希望能够帮助到需要的同学。   相贯线就是两个立方体相交表面所形成的曲线。如何求解呢?其实就是列方程求解(对应的课程是《解析几何》或者《线性代数》)。下面我将解释如何列方程去求解两个圆柱体的相贯线(需要一些矩阵方面的知识才能深刻理解背后的原理,建议去...

老王的博客 1万+

Unity实现控制物体沿指定方向移动

一、通用的控制物体沿指定方向移动的方法 /*** * Title:"三维可视化" 项目 * 主题:控制物体沿指定方向移动 * Description: * 功能:XXX * Date:2019 * Version:0.1版本 * Author:Coffee * Modify Recoder: */ using System.Collections; using System.Collec...

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1万+

unitymesh系列之画圆柱体

UnityMesh系列

weixin_41995872的博客 904

Unity3D创建圆柱体的方法

主要为大家详细介绍了Unity3D创建圆柱体的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

LabVIEW波形图表时间轴设置:三种方法实现横坐标显示日期时间

在数据采集与设备监控场景中,波形图表的横坐标默认显示采样点序号而非日期时间,这给工程师分析历史数据带来不便。理解时间标识(Timestamp)的本质——一个自1904年起算的双精度秒数,是解决问题的关键。时间轴设置既是显示格式问题,更是数据层与显示层的协同设计。通过属性节点动态生成刻度标签、将时间标识数组直接作为X轴数据、或使用波形数据(Waveform)类型绑定t0与dt,分别适用于固定点数显示、非等间隔事件记录和等间隔连续采样等不同需求。合理选择方案并注意缓冲区预分配与时间连续性处理,可让波形图表准确呈

weixin_33416697的博客 253

Unity给手加入圆柱骨骼

在Unity中给手加上圆柱骨骼

weixin_44510411的博客 2707

Anolis OS 23实战:5分钟搞定AI环境配置(含NVIDIA驱动一键安装)

本文详细介绍了如何在Anolis OS 23上快速配置AI开发环境,包括NVIDIA驱动的一键安装和TensorFlow、PyTorch等AI框架的部署。通过智能硬件适配引擎和优化后的二进制包,用户可在5分钟内完成传统需要数小时的配置工作,显著提升AI项目开发效率。

weixin_30335575的博客 535

unity代码生成圆柱网格并使用曲面细分顶点

unity代码生成圆柱网格

qq_55895529的博客 949

Moltbot 超详细安装使用教程(初学者版)

你在外面逛街,用微信/Telegram 发消息说"帮我查一下明天的天气"它立刻帮你查好并回复你说"帮我在电脑上新建一个文件夹叫'工作文档'"它真的帮你在电脑上创建了这就是 Moltbot ——一个能真正帮你干活的 AI 助手。API Key 就像是一把"钥匙",让 Moltbot 能够使用 AI 服务。

weixin_51040479的博客 2014

在昇腾910B服务上部署搭建适配PDF解析工具Mineru2.5开源项目

本文介绍了在昇腾910B服务器上部署开源PDF解析工具Mineru2.5的过程。首先从昇腾社区下载mindie镜像并运行容器,安装系统依赖。针对部署过程中遇到的多个报错问题(如torchvision与torch版本不匹配、昇腾软件栈与NumPy 2.0不兼容等),提供了具体解决方案和兼容版本。通过设置环境变量、安装指定版本的Python依赖包,成功部署Mineru项目并下载模型。最后运行测试,验证了在NPU设备上运行pipeline的可行性。整个过程详细记录了版本适配和错误处理方法,为类似部署场景提供了参考

一起加油吧 2164

Unity Vuforia 之 AR 识别物体抖动的简单解决思路参考

Unity Vuforia 之 AR 识别物体抖动的简单解决思路参考 目录 ​ 一、简单介绍 二、问题 三、简单解决思路 附录:Vuforia SDK 的功能如下 一、简单介绍 目前世界上主流的AR SDK提供厂商,国外的主要是Vuforia、Metaio,国内的主要是EasyAR。其中Metaio在2015年5月已被Apple重金收购,之后就没有再对外公开过SDK,经过两年的封闭开发,Apple已经打造出了强大的ARKit,能够基于庞大的iOS和iPad设备生产出各种惊艳的AR..

仙魁XAN 4786

从封装到先进封装:一文讲透Chiplet、2.5D/3D堆叠与系统集成

封装是芯片产业链中连接硅片与电路板的桥梁,承担物理保护、电气连接、散热与机械支撑等核心任务。传统封装从DIP、QFP发展到BGA,通过提升引脚密度满足早期性能需求。随着摩尔定律放缓,单纯缩小晶体管尺寸难以为继,先进封装应运而生,其核心理念从“封装单颗芯片”转向“系统级高密度集成”。扇出型封装、2.5D硅中介层、3D堆叠、Chiplet和系统级封装等技术,通过微米级互连和垂直堆叠,大幅提升I/O密度与带宽,成为AI芯片、HBM存储、高性能计算等领域的关键支撑。本文梳理先进封装的技术演进、分层架构与工程难点,帮

weixin_29185167的博客 367

Unity3D关于两个物体直接用圆柱进行连接画线(简单画线连接)

最近做的东西需要用圆柱画线,网上找了些,没找到合适的,所以自己简单写了一个。 这个函数只需要输入起始点和终点即可,材质可以自己调整 void DrawLS(GameObject startP, GameObject finalP) { Vector3 rightPosition = (startP.transform.position + finalP.tran...

chenchen_fcj程序猿的博客 4794

【异常检测】【EfficientAD】论文简单梳理与代码实现

EfficientAD作为较近的一篇异常检测网络,主要还是从S-T网络入手,对齐进行了相关改进。修改特征提取器引入自动编码器hard loss以及惩罚项。

胡侃有料的博客 2855

三维重建/SLAM笔记_最佳学习路线/攻略

本文目的 学习三维重建,需要不少知识,而知识之间又存在不同的依赖关系,为了后来人能少走弯路,也为了对自己的知识框架系统总结,特记录自己的学习路线。 学习心得 关于读书,了解基础知识是一方面,产生疑问也是一方面,为以后知道学习什么留下印象; 一回生,二回熟,看不懂时,大多是因为先验知识不够,没关系,多查多想,总会搞懂的。 学习路线 1.计算机图形学基础(OpenGL基础版)(徐文鹏 清...

惊鸿一博 3291

Unity 生成物体的几种方式

大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。在软件开发的时候,可能会遇到程序的物体生成,虽然比较简单,但还是小记录一下,如有需要可以看两眼以上就是讲了几种创建生成的方法,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

心疼你的一切博客 3845

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Unity3D C#数学系列之创建圆柱体

我们知道3D Max中可以很方便的创建出一个圆柱体,那么在Unity中能否用代码创建出一个圆柱体呢,当然可以的,在Unity里面想怎么玩都行的。我们今天来看看在Unity中用代码创建一个圆柱体。 废话少说,先看效果。 1 逻辑梳理 用代码创建圆柱体逻辑其实很简单,关键点就两个: 1.生成圆柱体的网格 2.将网格用合适的Shader渲染出来 1.1 生成圆柱体网格 unity中要渲染一个物体,需要先添加两个组件,一是MeshFilter,二是MeshRenderer。 MeshFilter 网格过滤器 其唯

老王的博客 4443

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

[Unity官方文档翻译]Primitive and Placeholder Objects Unity原生3D物体教程

Primitive and Placeholder Objects 原始的基础物体 Unity can work with 3D models of any shape that can be created with modelling software. However,  there are also a number of primitive object types that ca

无才可去补苍天 1517

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

unity游戏物体和组件

unity将游戏中的物体称为GameObject,也就是游戏物体。它包括之前学习过的3D Object【Cube(立方体)、Sphere(圆)、Capsule(胶囊体)、Cylinder(圆柱)、Plane(平面)、Quad(竖直小平面)、Empty Object(空物体)等】、Camera、Light、UI等。在一个unity场景中可以包含任意的游戏物体且每个物体都有属于自己的名称、标签等基本信息和组件等(在Inspector面板可以查看)。

zany123_的博客 1674

Unity技术手册 - 创建物体有几种方式?

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等) Unity技术手册 - 创建物体方式 :Instance、构造、CreatePrimitive Unity技术手册-创建物体的方式

空名先生 7364

【Unity】创建游戏物体的方法

记录学习过程 创建日期:2019-04-20 创建游戏物体的方法 new GameObject go = new GameObject("Cube"); 创建一个名为Cube的游戏物体,只有一个Transform组件,且都是原始的属性 根据prefab或者另一个物体克隆 GameObject earth = GameObject.Instantiate(prefab); 比如,我们...

GreAmbWang的博客 2001

【Unity3D】游戏物体操作 ④ ( 选中多个游戏物体操作 | 复制选中物体 | 聚焦选中物体 | 激活、禁用选中物体 | 对齐选中物体 )

一、选中多个游戏物体操作、 1、Scene 场景窗口选中多个物体、 2、Hierarchy 层级窗口选中多个物体、 二、复制选中物体、 1、使用 " Ctrl + D " 快捷键复制物体、 2、使用 右键菜单 | Duplicate 选项复制、 三、聚焦选中物体、 四、激活、禁用选中物体、 五、对齐选中物体、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 8962

Unity学习——认识unity中的3D物体

unity内置有如下几种3D物体可选—— Cube——正方体 Sphere——球体 Capsule——胶囊体 Cylinder——圆柱体 Plane——地面 Quad——单镜面(只能看到一面) Terrain——地形 ...

weixin_42593992的博客 1128

Unity使用ConfigurableJoint实现物理拖拽物体

我们把鼠标放开也一起写了,放上全部代码。//UTF8支持 public class CDrag : MonoBehaviour {if(joint!} } }//UTF8支持 public class CDrag : MonoBehaviour {

thinbug的专栏 2073
上一篇: Unity在监视面板批量赋值
下一篇: C#保存二进制文件到本地,并进行加载
Exclaiming
博客等级 码龄9年 28粉丝 54原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值