scenekit_plugin

An iOS plugin to render 3d models in SceneKit iOS.

Table of contents

📱 Supported platforms

  • iOS 9.0+.

✨ Features

  • 3D Earth
  • Ability to add widgets to 3D Earth
  • Tap on widgets
  • Show images in widgets
  • Dispose scene

📷 Screenshots

| iOS |

❓ Usage

  • Init scenekit view

    late ScenekitController scenekitController;

    ScenekitView(
        onScenekitViewCreated: onScenekitViewCreated,
    ),

    void onScenekitViewCreated(ScenekitController scenekitController) {
        this.scenekitController = scenekitController;
    }
  • Place Earth in the scene
    scenekitController.addWidgetToScene();
  • Place Widget on the Earth
    scenekitController.addWidgetToEarth(model:
        ScenekitWidgetModel(
            lat: 80,
            long: 5,
            name: "widgetNode1",
            assetName: 'assets/eagle.png',
            hexColor: 0x7FFF00,
            onWidgetTap: () async {
                await HapticFeedback.lightImpact();
                print("navigate to widgetNode1 !");
            },
        ),
    )
  • Place Widgets on the Earth
    scenekitController.addWidgetsToEarth(models: [
            ScenekitWidgetModel(
                lat: 80,
                long: 5,
                name: "widgetNode1",
                assetName: 'assets/eagle.png',
                hexColor: 0x7FFF00,
                onWidgetTap: () async {
                    await HapticFeedback.lightImpact();
                    print("navigate to widgetNode1 !");
                },
            ),
            ScenekitWidgetModel(
                lat: 43,
                long: -85,
                name: "widgetNode2",
                assetName: 'assets/eagle.png',
                hexColor: 0x7FFF00,
                onWidgetTap: () async {
                    await HapticFeedback.lightImpact();
                    print("navigate to widgetNode2 !");
                },
            ),
            ScenekitWidgetModel(
                lat: -19,
                long: 47,
                name: "widgetNode3",
                assetName: 'assets/eagle.png',
                hexColor: 0x7FFF00,
                onWidgetTap: () async {
                    await HapticFeedback.lightImpact();
                    print("navigate to widgetNode3 !");
                },
            ),
        ],
    )