1.Q:我想问这是唯一最方便的做法吗?都是这样做的吗?
A:我一般是这样做的,但是我不知道有没有其他做法。还有如果是有多个类似Sprite具有相同的公共属性的话,可以把相同的部分放在一个场景里,然后不同的属性使用继承场景实现。

2.Q:如果是,那么我使用for循环创建多个实例后如何访问之前创建的实例?我是需要存储之前所以创建的node?
A:是得储存起来或者用get_node()来获取该节点,你可以用列表存,用起来方便一点,我举个例子:
extends Node2D
export(PackedScene) var mob
var l=[]
func _ready():
for i in range(4):
var m=mob.instance()
l.append(m)
add_child(m)
func _process(delta):
for i in range(4):
l[i].position.x+=10
3.Q:1.实例之间或实例与父节点如何传递数据?(如一个Vector2)(我创建了一个全局脚本用于交换数据)
子结点可以访问父节点吗?如果可以,如何做?
A:这两个问题我一起回答了吧,假如不用全局脚本的话,直接访问父节点可以传递数据的。
假如有这样的一个场景,脚本附加在 4-0 节点上:

get_node("./")
#获取到的是 4-0 本身
get_node("../")
#获取到的是 3-0
get_node("../4-0")
#获取到的是 4-0
get_node(".../")
#这个是错的没这个
#还可以直接获取根节点
get_node("/root/1-0")
#获取到的是1-0
get_node("/root/1-0/2-1")
#获取到的是2-1
然后获取到父节点了的话,就可以直接赋值来传递数据了。