Text maxscript如何检测冲突并写入文本
首先,我是Maxscript的新手。 我看过特定对象的碰撞检测脚本,我还想将对象写入txt文件,例如,所有与Cylinder001碰撞的名为“Prism*”的对象,我想将其涂成红色并写入文本文件。 我在代码方面做了一些尝试Text maxscript如何检测冲突并写入文本,text,output,collision,maxscript,Text,Output,Collision,Maxscript,首先,我是Maxscript的新手。 我看过特定对象的碰撞检测脚本,我还想将对象写入txt文件,例如,所有与Cylinder001碰撞的名为“Prism*”的对象,我想将其涂成红色并写入文本文件。 我在代码方面做了一些尝试 fn collisionDetection node1 node2 = ( if intersects node1 node2 then (node1.mesh * node2.mesh).numverts > 0
fn collisionDetection node1 node2 =
(
if intersects node1 node2 then
(node1.mesh * node2.mesh).numverts > 0
else
false
)
dir =getFilenamePath (getThisScriptFilename())
makeDir dir
OutputTextFile = dir + "Output.txt"
if (doesFileExist OutputTextFile) do deleteFile OutputTextFile
filestreamvar = openFile OutputTextFile mode:"w"
if filestreamvar == undefined do
(
createFile OutputTextFile
filestreamvar = openFile OutputTextFile mode:"w"
myObjects = $'Prim*' as array
for i = 1 to myObjects.count do
(
nam = myObjects[i].name
if collisionDetection $myobject[i] $'Cylinder001' do
(
print myobjects[i] to:filestreamvar
)
)
edit OutputTextFile
close filestreamvar
我还没有添加为对象着色的代码,这是真的,因为我已经在努力处理文本文件中的输出了。有人能帮忙吗?谢谢。您的错误已经到了
如果碰撞检测$myobject[i]$'Cylinder001'执行
将$myobject作为场景中的命名项进行引用,但实际上它是一个局部变量。这意味着您将undefined传递给collisionDetection
改为传递myObject[1],这样应该可以使其正常工作很抱歉,如果碰撞检测myObject[1]$'Cylinder001'执行此操作,则无论它们是否与圆柱体碰撞,它似乎都会将许多myObject输出到文本文件中。有没有更好的方法来写这篇文章,让它只拾取实际与圆柱体碰撞的MyObject?