3

いくつかのオブジェクトを含むブレンダー シーンがあります。マウスがそれらの 1 つの上にあるときにオブジェクト名を取得し、空のオブジェクトのプロパティを設定します。私が今持っているのは、シーン オブジェクトのリストだけです。私に何ができる?

import GameLogic
cont=GameLogic.getCurrentController()
obj=cont.getOwner()
print obj
objlist=GameLogic.getCurrentScene().getObjectList()
print objlist
sen=cont.getSensor('sensor')
if sen.isPositive():
    print objlist[0]
    PropName=.... #how to set this with the object name?
    print PropName
4

2 に答える 2

0

SCA_MouseSensorセンサーとそのhitObjectプロパティを使用して、マウスが最後にあったオブジェクトを取得できると思います。Noneまたは型のオブジェクトを返しますKX_GameObject。取得したら、そのnameプロパティを使用して名前を取得できます (または、オブジェクトの他のプロパティにアクセスできます)。

参照リンク:

これはまだテストしていませんが、Blender Game Engine で使用すると動作するはずです。私が見つけた情報は Blender 2.59 に関するものなので、適切なバージョンのアプリケーションを使用していることを確認してください。

于 2012-05-21T21:07:19.063 に答える
0

他の誰かの役に立つために、私は自分の質問に答えます。私が行ったことmouse overは、シーンのプロパティを設定するために、シーン内の各オブジェクトにセンサーを設定し、Python スクリプト コントローラーを追加することでしたEmpty object

import GameLogic
import Rasterizer as r
r.showMouse(1)   #just in order to get the mouse visible within the game engine
print 'SetProperty.py\n'
cont=GameLogic.getCurrentController()
obj=cont.getOwner()
emptyOb = GameLogic.getCurrentScene().getObjectList()["OBEmpty"]
emptyOb.EmptyProp=obj
print 'object name, within emptyProp: ', emptyOb.EmptyProp
于 2012-06-03T09:49:16.170 に答える