
c#编程
三体问题
铁锁横江,锦帆冲浪
展开
-
太阳光照模拟器
GitHub地址原创 2021-01-09 11:57:11 · 11393 阅读 · 0 评论 -
Unity3D MeshLine 画线
一、算法 画线可以简化为正八棱柱 算法为: 两点A,B 向量AB 求向量AB的任意垂直向量,旋转垂直向量获得正半边形的顶点,通过顶点绘制三角形网格二、实现using System.Collections;using System.Collections.Generic;using UnityEngine;// 画线public class MeshLine { private Material material...原创 2020-12-27 20:50:17 · 2780 阅读 · 2 评论 -
Unity3D自由摄像头视角旋转,平移,缩放
一、需求在unity3D中经常需要通过鼠标操作视角的平移,旋转,缩放。这些操作都可以通过操作主摄像头来实现二、实现using System;using System.Collections;using System.Collections.Generic;using UnityEngine;public class CameraModel : MonoBehaviour{ //旋转参数 private float xspeed = -0.05f; // X速率 p原创 2020-12-19 19:59:56 · 3265 阅读 · 5 评论 -
Unity3D自定义菜单生成Asset文件并使用
一、需求 unity3D编辑器是可以高度自定义的,可以通过扩展增加很多自定义功能 Asset文件是资源配置文件,用于保存一些游戏中或者场景中需要用的数据,在需要用时可以方便增加二、原理 在unity编辑器中有许多标签其中 [MenuItem()]标签标识在菜单栏中新增一项,其中项的路径决定增加的路径 例如 : [MenuItem("Assets/Create/Create assets")] pub...原创 2020-12-17 20:15:59 · 2022 阅读 · 0 评论 -
vs2015修改csproj文件实现vs2019中自动添加文件功能
一、问题 在vs2019中,把cs后缀名的文件放入工程下文件夹中,就会自动导入工程。 vs2019的csproj工程配置文件如下:可以看到并没有class1.cs,ss.cs,Test.cs的相关配置,确引用了相关文件夹,可以判定,是编译器自动帮忙识别了其中的文件vs2019的csproj工程配置文件如下: 引用cs文件时,需要在<ItemGroup></temGroup> 标签下:...原创 2020-09-07 21:48:18 · 2720 阅读 · 0 评论 -
嵌入式mono的c++调用c#示例
一、支持 通过mono, c++调用c#的可以传入的参数类型支持类型有: 1、基本数据类型(bool float double enum...) 2、引用类型 3、结构体类型 4、类对象 5、数组 6、指针数组 7、字符串 二、示例 下面代码演示,各种类型调用的方法: main.cpp#include <mono/jit/jit.h&...原创 2020-09-06 12:19:30 · 3043 阅读 · 0 评论 -
Unity3D生成一段隧道网格(二)
上文我们已经生成了隧道网格,现在我们需要一个算法通过生成的网格,生成一个网格骨架。 基本算法思路是,分离出一个图,然后找图上的环。 class graph_vertex { public Vector3 pos; public int index; public bool visit = false; public List<int> edges = new List<int>(...原创 2020-08-22 09:40:46 · 594 阅读 · 0 评论 -
Unity3D生成一段隧道网格(一)
一、需求 最近有一个需求,生成段隧道的骨架网格。目前想到的方法就是,获取隧道网格,通过一个算法分离内框和外框的点: 然通过外框和内框上的点画线,从而实现骨架网格 二、生成隧道算法 隧道由段圆弧和一条直线组成,所以算法如下: 1、取圆心为0,0,0,和圆上半径的向量 ,绕z轴,旋转向量,取到圆上的点,外框上的点同理可得 2、平移内外框上的点,z轴加上偏离,得到隧道另一端的点 2、取相邻外框上的点和平移...原创 2020-08-16 08:56:21 · 1150 阅读 · 1 评论 -
嵌入mono c++环境搭建
我们知道c#是托管代码,c++是非托管代码 c#调用c++很简单,但是c++调用c#就有几种不同的方式了,其中mono就其中一种,很多游戏引擎都采取这种方式,底层使用c++,上层使用c#作为开发语言,用户只要编写c#代码就能够快速开发出想要的应用,例如Unity3D就是这种模式。 mono是一个虚拟机,在c++中创建并可以实现运行c#代码。二、安装 首先去官网下载最新版mono并且安装 我这边下载的是x64位版本 在C:\Pr...原创 2020-06-07 11:08:58 · 1498 阅读 · 0 评论 -
unity3D中贝塞尔曲线的控制点计算
一、贝塞尔曲线的概念 对于两点之间的连线,我们可以用直线进行连接效果如下: 其中的每一个F点都在AB连接的线段上 这就是一阶贝塞尔曲线 如果我们加入一个控制点C,那么做图如下: 1、连接AC,BC 2、在AC,BC上找到 AD/AC = CE/CB 的点D,E ...原创 2020-01-04 11:27:55 · 4110 阅读 · 1 评论 -
Unity3D调用自定义C++DLL
上篇文章说到了Unity调用Windows Dll库的方法 最近需求又升级了,需要调用自定义的一个Fly.dll飞行库,进行轨迹获取 所以研究研究Unity调用自定义dll的 方法,Unity3D端还是一致,需要声明需要调用的函数 首先创建C++ DLL库 新建一个test.h,在其中添加如下代码:#pragma once...原创 2019-12-03 20:25:06 · 424 阅读 · 0 评论 -
关于IL2CPP编译,C#调用WindowsAPI的方法(已解决2019.12.2)
在unity中我使用了c#的系统函数,System.Threading.Mutex 这个函数 在Windows上进行跨进程通信,需要读取一个互斥量,观察unity运行的TCP服务器有没有正常启动 这时使用IL2CPP的方式进行编译发布,发现运行时在如下行出现异常: mutex = new System.Threading.Mutex(true, "test_m...原创 2019-11-30 20:28:31 · 1184 阅读 · 0 评论 -
unity3D物体旋转
在3D世界里,物体有位置和姿态信息,位置很好理解,就是在空间中的坐标,有绝对坐标(position,世界坐标)和相对坐标(localPosition,相对于父物体的坐标)。 姿态就不好理解了,描述的是物体旋转,有三个姿态,偏航,俯仰,翻滚。 分别是物体按照x,y,z三轴旋转的结果 旋转在unity3d中用四元数来表示,四元数的一种超复数,由一个实部和3...原创 2019-11-06 21:02:49 · 1529 阅读 · 0 评论 -
通过Unity3D中的射线检测,移动物体
在第三人称游戏中,鼠标点击屏幕,角色移动到指定地点是一个重要的功能。 这一般是通过射线检测来实现 原理是:首先从屏幕上的主摄像机发送一条射线,击中地面后,把角色移动到相应的位置 代码实现如下: bool GetInteraction() { Ray interactionRay = Camera.main.ScreenPointTo...原创 2019-10-23 21:06:06 · 2487 阅读 · 2 评论 -
Unity3D简单的小车游戏
首先我们需要在unity3d 的Assertstore中找几个资源导入进去 点击进入assert store 搜索free的资源 然后找到自己想要的资源,下载,import导入 我这边找了一个树的资源和一个车的资源如下:(两个都导入)点击资源按钮框Free_Trees中就会有所需资源了f然后就可以做一个简单的小车游戏了先把上次的平...原创 2019-10-09 21:16:54 · 2378 阅读 · 1 评论 -
Unity3D从安装到运行第一个程序
现在项目中需要用到unity3d建模 目前自己试试,首先主页就很难找,托bd的福。一、安装 首先下载地址https://store.unity.com/cn/download-nuo unity3d有一个叫做unityhub的版本管理器,方便切换不同的unity3d版本,也可以用来管理工程,首先要安装的就是这个东西安装完成后注册个人账户,登录获得授权离线激...原创 2019-09-18 20:36:10 · 5684 阅读 · 3 评论 -
c#序列化(紧密型数据结构)(二)
上篇文章中我们实现了紧密型数据结构序列化的方法 序列化的方法如下:if (obj is bool){ buff.AddData(BitConverter.GetBytes((bool)obj), sizeof(bool));}我们注意到,每次使用BitConverter.GetBytes都会产生一个额外的byte[]数组同时obj is bool 进行动态...原创 2019-09-09 21:51:19 · 212 阅读 · 0 评论 -
c#序列化(紧密型数据结构)(一)
c#自带各种方便的序列化功能,例如可以序列化类为json,序列化为XML。 我对C#了解甚少,最近需要做一个unity3D服务器和c++客户端网络通信的功能,所以实现了一个简略序列化函数,搓作留此纪念。 实现如下: 首先实现一个动态缓存区,可以自动增大,具有增加数据和获取数据接口,用于进行序列化时使用 该类使用泛型实现 Dynamical.cs...原创 2019-09-03 21:09:30 · 489 阅读 · 2 评论