public void doIt(GameObject gameObject) { Transform target = gameObject.transform; for (int i = 0; i < count; i++) { Vector3 newPos = transform.position - distance * (i + 1) * transform.forward; PlanetMovable pm = GameObject.Instantiate <PlanetMovable>(source, newPos, transform.rotation); pm.gameObject.name = "movable" + i; FactoryPlugin fg = factoryPloginSocket as FactoryPlugin; if (fg != null) { fg.doIt(pm.gameObject); } FollowerController fc = pm.gameObject.GetComponent <FollowerController>(); fc.followTarget = target; target = pm.transform; } }
public Program() { if (FactoryPlugin <MyPlugin> .GetVersion() > 1) { } }
// Use this for initialization void Awake() { // 生成玩家需要的所有元件 var gameObject = GameObject.Instantiate <GameObject>(source, transform.position, transform.rotation); var followTarget = GameObject.Instantiate <Transform>(dummy); followTarget.name = "followTarget"; followTarget.parent = gameObject.transform; followTarget.localPosition = new Vector3(0, 0, -1.45f); var cameraTarget = GameObject.Instantiate <Transform>(dummy); cameraTarget.name = "cameraTarget"; cameraTarget.parent = gameObject.transform; cameraTarget.localPosition = new Vector3(0, 1, 0); var cameraPivot = GameObject.Instantiate <CameraPivot>(cameraPivotPrefab); cameraPivot.bind(cameraTarget, gameObject.transform); var moveForceParameterRepository = GameObject.Instantiate <MoveForceParameterRepository>(moveForceParameterRepositoryPrefab); moveForceParameterRepository.transform.parent = gameObject.transform; moveForceParameterRepository.transform.localPosition = Vector3.zero; gameObject.AddComponent <RenderBehindTheWall>(); gameObject.AddComponent <SetCameraPivot>(); var measuringJumpHeight = gameObject.AddComponent <MeasuringJumpHeight>(); var slopeForceMonitor = gameObject.AddComponent <SlopeForceMonitor>(); slopeForceMonitor.maxForceLimit = 120; var planetMovable = gameObject.AddComponent <PlanetMovable>(); planetMovable.standUpDirectly = true; planetMovable.slopeForceMonitor = slopeForceMonitor; planetMovable.moveForceParameterRepository = moveForceParameterRepository; planetMovable.init(); var surfaceFollowHelper = gameObject.AddComponent <SurfaceFollowHelper>(); surfaceFollowHelper.cameraPivot = cameraPivot; var planetPlayerController = gameObject.AddComponent <PlanetPlayerController>(); planetPlayerController.measuringJumpHeight = measuringJumpHeight; planetPlayerController.setCamera(cameraPivot.getCameraTransform()); // plugin 的部分 int pluginSide = factoryPloginSocket.Length; for (int i = 0; i < pluginSide; i++) { FactoryPlugin fg = factoryPloginSocket[i] as FactoryPlugin; if (fg != null) { fg.doIt(gameObject); } } }