- 0 ノート
-
スクリプターズカフェ/ログ/プリムをShift+ドラッグでコピーした時に中のスクリプトはどうコピーされる?
08/10/11
編集
勘違いしやすいstate entryとスクリプトのアセットUUIDの話から、やはりプリムをShift+コピーした時の挙動だけ特殊だよねぇ、ということでこの時の動きについて考えてみました。
★特殊というのは、Shift+ドラッグでコピーした時はスクリプトにリセットがかかるという点です。
アセットのUUIDはShift+ドラッグでコピーした場合でも変わっていませんから、スクリプト自体は同じものを参照しているようです。
しかしリセットがかかるということは、プリムにスクリプトが入れられた全体のデータがそのままコピー(いわゆるディープコピー)されているわけではなく、見た目(オブジェクト)と中身(スクリプト)などが同じものがその場で生成される、ということではないかとFakeさんから意見が出ました。
つまり、Shift+ドラッグでコピーした場合は、次のようなイメージの操作が自動で行われていると考えるのがよさそうです。
- コピー元オブジェクトと同じプリムがrezされる。(中身は関係なし)
- rezされたプリムの中に、コピー元と同じスクリプトなどが新たに追加される。
スクリプトを(自分のインベントリから)プリムに追加した時は、スクリプトがリセットされた状態からスタートしますので、これと同じと考えると確かに合点がいきます。
【関連リンク】
このページのTinyURL:http://tinyurl.com/SC-Shift-copy