小编Abs*_*the的帖子

Unity 5.5过时的粒子系统代码

之前5.5粒子系统变量可以通过ParticleSystem访问并进行读/写.现在它们是通过ParticleSystem.MainModule访问的,因此很多代码已经过时了.该API更新一直没有能够解决大部分的问题.我已经阅读了新文档,但我无法弄清楚应该如何使用新的变量类型.例如,在JetParticleEffect.cs中,此行会引发警告:

// set the original properties from the particle system
m_OriginalLifetime = m_System.startLifetime;
Run Code Online (Sandbox Code Playgroud)

警告声明:'ParticleSystem.startLifetime'已过时:'不推荐使用startLifetime属性.请改用main.startLifetime或main.startLifetimeMultiplier.

我尝试过以下方法:

m_OriginalLifetime = m_System.main.startLifetime;
// error: Cannot implicitly convert type 'UnityEngine.ParticleSystem.MinMaxCurve' to 'float'
Run Code Online (Sandbox Code Playgroud)

我相信答案与minMaxCurve 常量变量有关,因为这会编译:

m_OriginalLifetime = m_System.main.startLifetime.constant;
Run Code Online (Sandbox Code Playgroud)

但是文档中几乎没有解释.任何人都可以对此有所了解吗?

此外,新的乘数适合哪里?我假设你以前可以做到这一点:

particle.startSize *= myMultiplier
Run Code Online (Sandbox Code Playgroud)

......你现在应该这样做吗?

particle.main.startSizeMultiplier = myMultiplier
Run Code Online (Sandbox Code Playgroud)

c# updates deprecated unity-game-engine particle-system

9
推荐指数
1
解决办法
9080
查看次数

高效代码:VB.Net中的短整数数据类型

我正在编写一个性能非常关键的应用程序.对于x64 CPU最有效的数据类型,我有点困惑.

MDSN表示"在某些情况下,公共语言运行库可以将Short变量紧密组合在一起并节省内存消耗." 而且"整数数据类型在32位处理器上提供最佳性能"

我正在使用大量数据(在锯齿状数组中平均大约500万个值[10或更多] [30] [128,128])来实时生成位图(数据值的热图).所有数据点都是200到3500之间的整数,所以我可以使用short或integer.哪个效率最高?

谢谢.

vb.net performance integer short processing-efficiency

6
推荐指数
1
解决办法
1097
查看次数

Unity3D - 使用Time.deltaTime作为协程的等待时间

TL,DR:使用Time.deltaTime作为协程中产量的等待时间是否安全?

通常为了避免在Update()中使用短暂的功能不必要的逻辑,我将运行一个协程.例如,在我的游戏中,我有一个缓慢的协程,定期检查NPC和播放器之间的距离,如果该距离低于某个阈值,我将运行更频繁的协程,使用光线投射等更昂贵的视线测试.这似乎比在Update()中不断检查所有内容更有效.

我的问题是:使用Time.deltaTime作为yield的等待时间是否安全,从而在协同程序的持续时间内模拟Update()?即yield return new WaitForSeconds(Time.deltaTime);

由于deltaTime不是常数,如果下一帧花费的时间长于最后一帧 - 协同程序会延迟到下一帧,或者是整个帧被延迟直到协程结束时发生的可怕事情?我很想让缓冲区安全,yield return new WaitForSeconds(Time.deltaTime * 1.2f);但理想情况下我希望它能够精确地执行每一帧.

c# coroutine unity-game-engine

4
推荐指数
1
解决办法
9638
查看次数

Word VBA SaveAs错误:不兼容的文件类型和文件扩展名

我正在尝试进行保存 - 与Word 2016中的以下代码一样:

Dim doc As Word.Document
Dim fpFile as string

Set doc = ActiveDocument
fpFile = doc.Path & "\" & doc.Name

doc.SaveAs Filename:=Left(fpFile, Len(fpFile) - 4) & "docx", FileFormat:=wdFormatDocument 
Run Code Online (Sandbox Code Playgroud)

使用Left和Len函数的My Filename参数求值为:

C:\ Users\My Name\Documents\My Company\My Client\test folder\HeaderTemplate.docx

这对我来说很好,但我收到错误6294:SaveAs行上的'不兼容的文件类型和文件扩展名'.

我已经尝试将Filename首先放入一个字符串变量,我尝试了SaveAs2方法,两者都有相同的结果.我想保存为标准的非宏启用的docx文件.

有任何想法吗?

谢谢.

vba ms-word word-vba

4
推荐指数
1
解决办法
4352
查看次数

转向transform.forward,忽略旋转

此代码附加到相机:

transform.position += Input.GetAxis("Vertical") * transform.forward * mod;
transform.position += Input.GetAxis("Horizontal") * transform.right * mod;
Run Code Online (Sandbox Code Playgroud)

我使用了 .forward 和 .right ,因为玩家可以在 Y 轴上旋转相机,因此无论相机面向哪个方向,前向键总是使相机相对向前移动,左键将相对移动它左等等。只是为了澄清 - 我希望它在本地空间移动,而不是世界空间,所以向前是它所面对的方向,不一定是 Vector3(0,0,1)。

摄像机可以自由漫游,没有可跟随的父级或目标。

问题是相机的 X 旋转角度为 45 度,可以向下看。因此,使用transform.forward将修改它的高度。还有一些滚动代码可以更改相机高度,因此我不想将高度设置为固定值。如何将移动限制为仅 X 和 Z,最好不要将其设为空?

更新:这段代码可以工作,但它并不漂亮,我确信有一个使用 Vector3.Project 的更优雅的解决方案,正如 xyLe_ 所建议的那样。如果我弄清楚了,我会添加到他的答案中。

mod = Time.deltaTime * 30;
float yPos = transform.position.y;
pos = transform.position;
pos += Input.GetAxis("Vertical") * transform.forward * mod;
pos.y = yPos;
pos += Input.GetAxis("Horizontal") * transform.right * mod;
pos += Input.GetAxis("Mouse ScrollWheel") * transform.up * mod * -30;
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine

3
推荐指数
1
解决办法
9084
查看次数

如何获得CommandButton集合?

我需要列出工作表上的大量旧ActiveX命令按钮的标题.

我如何参考该系列?

伪代码:

For each btn in Activesheet.CommandButtons 
     Debug.Print btn.Caption
Next btn
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

3
推荐指数
1
解决办法
1290
查看次数

在'圆形'数组中查找下一个位置

我有一个由SW编号的8个罗盘点阵列,从顺时针方向到S:

2 3 4
1   5
0 7 6
Run Code Online (Sandbox Code Playgroud)

我想计算从一个点到另一个点的最短路线是顺时针(+1)还是逆时针(-1).例如,从7到5将是-1,从7到0将是+ 1.

我想这个简单的问题,但今天我的大脑已经冻结了.

我得到的最接近if abs(start - end) < 4, -1, 1但如果开始是3则不起作用.

还有一个类似的问题在这里,接受的答案是使用模,但并没有解释如何.我没有成功地抛出各种计算.

c# arrays math unity-game-engine unity5

3
推荐指数
1
解决办法
174
查看次数

公共变量超出范围

当执行移动到不同模块中的sub时,我的公共变量正在丢失范围.我无法理解为什么会发生这种情况.

模块A:

Option Compare Database

Public db As DAO.Database
Public xlApp As Excel.Application

Sub Main()

Dim db As DAO.Database

Set db = CurrentDb

ProcessFiles ' upload the data from the report files
AppendToPentana ' transfer the data from the main tables to the pentana export table
ProduceFinalExport ' export the final data to Excel

End Sub
Run Code Online (Sandbox Code Playgroud)

模块B:

Sub ProcessFiles()

Dim recSet As Recordset

' open a recordset containing keywords to look for in the file names to identify the area …
Run Code Online (Sandbox Code Playgroud)

ms-access vba

2
推荐指数
1
解决办法
134
查看次数

无法获取 Range 类的 Sort 属性

执行排序时出现上述错误。我已经完全限定了所有对象并检查了我的变量是否包含正确的值。错误发生在第一行:

With ws.Columns("A:E").Sort
    .SortFields.Clear
    .SortFields.Add Key:=ws.Range("A2:A" & oldLastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    .SetRange ws.Range("A1:E" & oldLastRow)
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
Run Code Online (Sandbox Code Playgroud)

我如何引用范围似乎并不重要,每一个都给出了相同的错误:

With ws.Range("A:E").Sort


With ws.Range("A1:E" & oldLastRow).Sort
Run Code Online (Sandbox Code Playgroud)

范围的每个单元格中都有数据,列有标题。什么可能导致这个问题?

excel vba

2
推荐指数
1
解决办法
2747
查看次数

MS Access:SQL Server中的只读链接表?

有没有办法将表从SQL Server链接到Access只读?

导入的数据太多了.

sql-server ms-access ms-access-2007

1
推荐指数
1
解决办法
1366
查看次数

在VBA中更新记录集时的区域日期格式

我的总部设在英国,正在为美国的客户开发Access 2016数据库.

我需要以编程方式更新表中的某些日期,我已经通过编辑RecordSet来完成.

我的问题是:如果我提供英国格式的日期(dd/mm/yyyy),数据库会在我的客户端计算机上以美国格式(mm/dd/yyyy)存储吗?

我没有办法在不改变Windows中的区域设置的情况下测试这个,我不想做.

谢谢.

ms-access vba

0
推荐指数
1
解决办法
344
查看次数