質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

2059閲覧

[Unity]Script付きPrefabをサーバに配置しAddressableを使用して読み込ませる実装で、後からアプリ自体は更新させずScript内容を変更したい

hinatahinata

総合スコア29

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2020/02/04 03:12

Unityを使用してゲーム製作を行っております。
私のAddressable Assets Systemの理解が正しいか、お教えいただけますでしょうか。

#確認したこと
以下のスクリプトをアタッチしたGameObjectをPrefab化し、
Addressable Assets Systemを使用し、サーバに配置したものを実行時に読み込ませるものとします。

RotateCube

1using UnityEngine; 2using System.Collections; 3 4public class RotateCube : MonoBehaviour { 5 void Update () { 6 // 回転させる 7 transform.Rotate(new Vector3(0, 0, 5)); 8 } 9}

読み込む側は、サーバに配置されたjsonファイルから生成すべきprefab名を取得しそれを生成します。

json

1{"shape":"RotateCube"}, 2{"shape":"RotateCube"}

ShapeGenerator

1public class ShapeGenerator : MonoBehaviour { 2 void Start() { 3 // jsonを読み込みこんで1つずつ生成 4 List<string> shapes = LoadJson(); 5 foreach(var shape in shapes) { 6 CreateShape(shape); 7 } 8 } 9 10 // AASでサーバに配置されたnameのGameObjectを生成する 11 void CreateShape(string name) { 12 Addressables.LoadAssetAsync<GameObject>(name).Completed += op => { 13 go = op.Result; 14 Instantiate(go); 15 }; 16 }

アプリ配信後に、以下のような全く新しい「SlideSquare」というGameObjectを追加したいと思い
Prefab化しサーバに配置しました。

SlideSquare

1using UnityEngine; 2using System.Collections; 3 4public class SlideSquare: MonoBehaviour { 5 void Update () { 6 // 移動させる 7 transform.Translate(new Vector3(10, 0, 0)); 8 NewAction(...); 9 } 10}

jsonファイルを以下の様に変更して実行したところ

json

1{"shape":"RotateCube"}, 2{"shape":"SlideSquare"}

SlideSquareのPrefabにアタッチしていたScript「SlideSquare」が ロードできず動作しませんでした。

#私のAASの認識

  • PrefabにアタッチされたScriptは消える
  • ただしアプリ自体に事前にそのScriptが組み込まれている場合には、ロード時に参照を解決しアタッチされる
  • つまり事前組み込みしていないScriptを後から動的に追加する方法はない

このような認識で間違っていないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

・PrefabにアタッチされたScriptは消える

難しい事はわかりませんがスクリプトは消えないですよ。

投稿2021/02/19 00:46

yonn

総合スコア120

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問