- 投稿日:2019-06-25T19:50:24+09:00
ジャンプしている最中にzキーを押して空中攻撃をする方法
- 投稿日:2019-06-25T19:50:24+09:00
ジャンプしている最中にzキーを押して空中攻撃をする方法知りたいです。[Unity]
- 投稿日:2019-06-25T18:33:31+09:00
Unity2018.3以降のPrefab作成
2018.3以降では、NestedPrefab対応でPrefabUtilityが変わっていて、
色々調べたのでPrefabUtilityの使い方のメモとして残しておこうと思います。#スクリプトからPrefab作成
EditorスクリプトでFBXデータからそのままPrefabを作成する。
2018.2以前はこれでプレファブ作成できた。old.csvar obj = AssetDatabase.LoadAssetAtPath("Asset/fbx.fbx", typeof(GameObject)) as GameObject; PrefabUtility.CreatePrefab("Asset/prefab.prefab",obj); AssetDatabase.SaveAssets();ところが、2018.3以降は「PrefabUtility.CreatePrefab()」が非推奨になっていた。
いつなくなるかわからないので、この際新しい書き方に切り替えてみようと思う。色々試した結果、以下のコードでいけるようだ
new.cs{ var obj = AssetDatabase.LoadAssetAtPath("Asset/fbx.fbx", typeof(GameObject)) as GameObject; // インスタンス化 var game = PrefabUtility.InstantiatePrefab(obj) as GameObject; // 〜 処理 〜 // プレファブ作成 var prefab = PrefabUtility.SaveAsPrefabAsset(game, "Asset/prefab.prefab"); // リンクを解除 PrefabUtility.UnpackPrefabInstance(game, PrefabUnpackMode.OutermostRoot, InteractionMode.AutomatedAction); // シーンから削除 Object.DestroyImmediate(game); AssetDatabase.SaveAssets(); }以前はシーンにインスタンスを作成しなくてもできたが、今回からは一度シーンに作成しないとダメのようなので
最後にシーンから削除するようにした。ちなみに、リンクについてはあんまりわかっていない。。即反映されるわけでもなさそうだし。。
リンクについては今後調べていこうと思います。なお、リンクなしでインスタンス化するメソッドもある模様?(インスタンス化時にCloneとつく)
var game = PrefabUtility.InstantiateAttachedAsset(obj) as GameObject;
- 投稿日:2019-06-25T13:07:11+09:00
Unityエディタ拡張でサウンド再生を行う
経緯
Unityのエディタ拡張でサウンドコンテナなどを作ってた時に保持したAudioClipの内容を再生したい( 該当AudioClipの場所にInspectorを移動したくない )場合に調べたのでここに共有
ちなみにデフォでサウンドファイル選択時に音声は鳴らせる→ここを参照
スクリプト
AudioClipの再生はここを参考に作成
停止方法が見つからなかったので探してきたusing System; using UnityEngine; #if UNITY_EDITOR using System.Reflection; using UnityEditor; #endif namespace Sample { // SE,BGMの管理用コンテナクラス. [System.Serializable] public class SampleContainer : ScriptableObject { // 保持するデータ. [SerializeField] AudioClip soundData; #if UNITY_EDITOR // SampleContainerのインスペクタ拡張. [CustomEditor(typeof(SampleContainer))] class SampleContainerEditor : UnityEditor.Editor { // インスペクタ描画. public override void OnInspectorGUI() { var data = target as SampleContainer; data.soundData = (AudioClip)EditorGUILayout.ObjectField("AudioClip", data.soundData, typeof(AudioClip)); if (GUILayout.Button("PlayClip")) this.PlayClip(data.soundData); if (GUILayout.Button("StopClip")) this.StopClip(data.soundData); } // エディタ上でのサウンド再生. void PlayClip( AudioClip clip) { if (clip == null) return; var unityEditorAssembly = typeof(AudioImporter).Assembly; var audioUtilClass = unityEditorAssembly.GetType("UnityEditor.AudioUtil"); var method = audioUtilClass.GetMethod ( "PlayClip", BindingFlags.Static | BindingFlags.Public, null, new Type[] {typeof(AudioClip)}, null ); method.Invoke(null, new object[] {clip}); } // エディタ上でのサウンドを停止する. void StopClip( AudioClip clip) { if (clip == null) return; var unityEditorAssembly = typeof(AudioImporter).Assembly; var audioUtilClass = unityEditorAssembly.GetType("UnityEditor.AudioUtil"); var method = audioUtilClass.GetMethod( "StopClip", BindingFlags.Static | BindingFlags.Public, null, new Type[] {typeof(AudioClip)}, null ); method.Invoke(null, new object[] {clip}); } } #endif } }実行画面
ScriptableObjectをインスタンス化してAudioClipを設定して "Play" ボタンを押下すると再生 "Stop" を押下すると停止
- 投稿日:2019-06-25T02:10:27+09:00
UnityでビルドしたやつがiOS実機デバッグできなかった件
起こったこと
UnityでビルドしたやつをXcodeで実機デバッグしようとしたら
この実機iPhoneの名前横に(unsupported architecture)というのが出てきた。
無理やりビルドするとarm64が云々と言われる。要は,実機デバッグできなくなったというお話。(iOS simulatorならいける)
解決方法
Unity側の設定がおかしかった。
File>Build Settings開いてPlayer Settings開く。
この画面の今選択されてる真ん中のiPhone8以下の機種のマークのOther Settingsを下にずーーーっといくとでてくる,
こいつをSimulator SDKからDevice SDKに変更。???????できた???????
詰まったとこ
しばらくWindows用でビルドしてたりSimulatorで我慢してたりしてた間にXcode色々弄ってたからXcodeが悪いと思い込んでた。Xcodeゴメン。
- 投稿日:2019-06-25T01:41:01+09:00
Xcode10.1 + Unity2018.3.13f1 + GoogleMobileAds3.17.0 + GoogleMobileAdsUnityAdsMediation2.1.0 でclang:-1: linker command failed with exit code 1 (use -v to see invocation)
Build Settings => Build Options => Enable BitcodeをNoにして、Bitcodeを無効にすることで一旦解消することはできた。最新のXcodeであれば出ないのかも(新しいMacBook Pro買いたい・・・)
参考
https://akataworks.hatenadiary.jp/entry/2017/08/22/125403
- 投稿日:2019-06-25T01:41:01+09:00
Xcode10.1+Unity2018.3.13f1+GoogleMobileAds3.17.0+GoogleMobileAdsUnityAdsMediation2.1.0でclang:-1: linker command failed with exit code 1 (use -v to see invocation)
Build Settings => Build Options => Enable BitcodeをNoにして、Bitcodeを無効にすることで一旦解消することはできた。最新のXcodeであれば出ないのかも(新しいMacBook Pro買いたい・・・)
参考
https://akataworks.hatenadiary.jp/entry/2017/08/22/125403