【ゲームエンジン】Unity初心者質問スレBuild4

■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
垢版 |
2020/03/29(日) 19:35:12.24ID:mirhKW7D
ゲームエンジンUnityを楽しむ初心者による初心者の為のスレ
その為「アセットを購入しましょう」「チュートリアルやれ」「ググレカス」等禁止
初心者が親身になって初心者に教える。
又ググレの場合、何のキーワードでググるのか書いてね

●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
 http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
 http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 http://unity3d.com/jp/unity/faq
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
※前スレ
【ゲームエンジン】Unity初心者質問スレBuild3
https://itest.5ch.net/mevius/test/read.cgi/gamedev/1578720539
2020/03/29(日) 19:35:49.98ID:mirhKW7D
無かったようなので
2020/03/30(月) 14:51:32.71ID:3rqdReuX
画像を取り込んだ時にインスペクターで設定する
FilterMode という項目ですが、

FilterModeはPoint(no filter)にしておいたほうが負荷がかからなくなるのでしょうか?
動作が軽くなるのであれば全部の画像のフィルターモードをPoint(no filter)にします。
2020/03/30(月) 14:58:19.96ID:3rqdReuX
それともう一つ
フィルターモードの下に
compression という画像を圧縮するかどうか項目もあるのですが、
こちらも圧縮無しの Noneにしたほうがゲームの動作が軽くなるでしょうか。
かなり大きめの画像をアニメーションクリップで動かしたいので、容量が多少多くなっても
動作が軽いほうがいいと思ってます。
2020/03/31(火) 12:06:51.45ID:XuysTflz
キャラクターコントローラーが悪いのか、Updateの処理が悪いのか、アニメーションが悪いのか分からないのですが、動きの違和感を取ることができずに困っています

1プレイヤーが移動中>2魔法を打つアイコンをクリック>3移動(走る動作)を止める(敵をターゲッティングしていたらその方向を向く)>4構えて魔法を撃つ
という流れを作っているのですが、
3で歩くモーションが止まる前、対象の方向を向く前に、発射の構えをする前に魔法を放ってしまいます

「Unityゲーム開発 オンライン3Dアクションゲームの作り方」
かなり古い書籍ですが、この書籍をもとにキャラクターの移動には専用のCharacterMoveスクリプトを使用して、SendMessageで目的地の情報等を送っています
行動はすべてマウスで行うようにしており、左クリックで指定した位置へ移動するようにしています
アニメーション遷移も遊びの部分?は消し、終了時間ありのチェックも外してあります

特定の行動(魔法、スキル等)を使用の際、移動・方向転換をきっちりと止めてから次のモーションに移ることはできないでしょうか
2020/03/31(火) 15:31:16.31ID:vLXauLhI
http://s.kota2.net/1585634790.gif

このようにボタンを押して画像が切り替わるものを作りたいです。シーン遷移ではない方法で作りたいです。
自分が本を読んで考えた方法は、列挙型 enum で5個のパートを作って、
最初の画像1オブジェクトをスクリプトで画像2や画像3に変更する方法です。画像は配列で5つ格納します。
2個の移動ボタンを押したら列挙型で用意したパートに移動させて、配列で格納した画像を写すようにする方法です。
ただこの方法だと5個の画像をピッタリ同じサイズにしないといけないので、そこがネックになっています。
何かいい方法があったら教えてください。
2020/03/31(火) 19:53:29.68ID:OL7aWxsu
>>6
自分もそれ知りたい
2020/03/31(火) 22:25:54.24ID:P5IdPqA2
>>6
もう少しやりたい事を明確にして頂けると回答しやすいです。
サイズをぴったり同じにするのが何故ネックなのですか?

異なるサイズの画像を引き伸ばして(サイズを合わせて)表示したいのか、中央寄せで表示したいのか、アスペクト比を保ったまま〜など何がやりたいのかわからないので。
2020/03/31(火) 23:12:15.41ID:vLXauLhI
http://s.kota2.net/1585663533.gif
やりたい事はお絵描きソフトで作った装飾文字をimage画像にして
左右の送るボタンで画像テキストを送るノベルゲームを作る事が目標です。
ですので表示する位置は下の方です。
文字画像は等倍で表示したいです。x軸は画面中央にして y軸は下の方にしたいと思っています。
2020/04/01(水) 00:56:32.98ID:3xpxsbvv
>>9
1オブジェクトで画像を切り替えるんじゃなくて、1画像1オブジェクトにしてそれを切り替えればいいんじゃない?
そうすればサイズも自由にできるっしょ
2020/04/01(水) 08:48:57.61ID:X+GqDuRe
>>9
自分は素人なので他のアプローチがあるかもしれませんが、サンプルを作って動作確認できたので一応書いときます。

1.テキストを表示したい場所にイメージのUIを置く(サイズは0×0でもなんでもok)

2.ScriptableObjectでSpriteのリストを作成(画像1)

3.テキスト画像を作ったScriptableObjectのイ
ンスペクターにすべてセットする

4.さっき作ったUIにスクリプトをセット(画像2)

https://i.imgur.com/3m3BdFc.jpg
https://i.imgur.com/92qpFB6.jpg
https://i.imgur.com/mOpsIjD.jpg
https://i.imgur.com/Mxv64v4.jpg

5分くらいで作ったやっつけ仕事なのであとは好みに変更して下さい。
あと専ブラスマホにしかいれてないので見にくくてごめんなさい。
2020/04/01(水) 12:52:08.06ID:WCWMihB2
よくあるRPGのスキルスロットを作成しているのですが、IPointerClickHandlerのOnPointerClickが反応しなくて困っています
左クリックのみでスキルを発動させたいのと、スロットをショートカットスロットに移動させても同様に動かしたいのでこちらを使いたいのですが、
反応してくれません
IBeginDragHandler、IDragHandler、IDropHandler、IEndDragHandleは正常に動いています
試しにいれてみたIPointerEnterHandlerも動きました
なのでEventSystemには問題がないと思います

スロットにはイメージオブジェクトがあるのでレイキャストがブロックされている可能性も考えて
キャンパスグループでレイキャストブロックを外してみましたが変わりませんでした

一体何が原因なのでしょう?
2020/04/01(水) 16:17:09.66ID:9s+USB2l
もう少しくやしく
2020/04/01(水) 17:57:12.40ID:WCWMihB2
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class testClickHander : MonoBehaviour, IPointerClickHandler
{
public void OnPointerClick(PointerEventData eventData)
{
Debug.Log("動作確認");
}
}
コードは上記のような簡潔なもので試しました
eventDataから左クリックの情報が取れるので利用していきたいです

ためしにIPointerUpHandler,IPointerDownHandlerを使ってみましたがこちらも反応しませんでした

各スロットは
Slot (イメージ、ここにスクリプト割り当て)
+ SkillImage
+ StateImage
+ SelectImage
とのような形になっています
2020/04/01(水) 17:58:20.01ID:2/SZ2FkU
なるほど
2020/04/01(水) 18:20:03.78ID:fSKLh7hB
>>10
紙芝居のようにする方法も考えたのですが、中央に表示するキャラクターの目パチは口パクが出来いなくなってしまうので、その方法は断念していました。

>>11
どうも有難うございます!おかげさまでBackボタンとNextボタン両方実装することが出来ました!
画像の追加がすごく簡単で便利です。
コードを書いていただいて本当にありがとうございます。
知らないコードの書き方がたくさんあってとても勉強になりました!
2020/04/02(木) 11:18:36.05ID:ih5ei4Vy
質問失礼致します。
カードゲームの手札をよくある扇形にソートするにはどの様な手法がありますでしょうか?
ホライゾンレイアウトグループを曲線に曲げる様なイメージなのですが。
2020/04/02(木) 14:03:34.72ID:tuHj5tK9
円の外周にカードの中心が来るように配置。
後はカードが離れる具合を見ながら、円からの距離を調整する。
2020/04/02(木) 23:12:06.55ID:+sDqQRlv
>>17
パッと思いつくのは
アニメーションカーブとLerp関数を使う、とかでしょうか。

パスに沿ってオブジェクトを配置する、的なアセットを探してみるという手もありそうです。
2020/04/03(金) 07:50:58.43ID:dLYy4Q4h
>>18,19
回答ありがとうございます。
まず>>18さんのアプローチで挑戦してみようと思ったのですが円の外周を用意する事すら出来なかったので、円状にオブジェクトを並べるアセットを探して使用してみました。
文字通りカードが円状に広がったのですが、求める挙動に調整する事は出来ませんでした・・・。

>>19さんのアニメーションカーブについては理解が及ばず挑戦を諦めました。。
次はパス状にオブジェクトを配置するアセットを探してみようと思います。

色んなゲームに採用されていて、簡単そうに見える事でも自分で実装しようとすると難しいですね。
3Dのゲームも曲線を使わないものは簡単に作れたので、曲線の表現が初心者の最大の難関かもしれません。
2119
垢版 |
2020/04/03(金) 09:04:37.38ID:OH8I2wiw
>>20
これを新規のmonovihaviorに貼り付けて、インスペクタからカーブに山なりのカーブを、CardObjには適当なカードのプレハブを、
始点と終点にはそれぞれ空オブジェクトを割り当てて動かしてみてください。始点と終点のY位置は同じ値にしておく方がわかりやすいです。

この例はめちゃくちゃざっくりなので実際にゲームで使うには不十分だと思いますが、カーブとLerpを使って実装するためのヒントにはなるかと・・・

public AnimationCurve curve; //このカーブからY位置に足す値を取得する
public GameObject cardObj; //カードのプレハブ
public Transform startTr; //始点
public Transform endTr; //終点
public int cardNum = 52; //カード枚数

void Start()
{
SpawnCards();
}

void SpawnCards()
{
float step = 1f / (cardNum-1);
for (int i = 0; i < cardNum-1; i++)
{
var offsetY = curve.Evaluate(step * i);
var pos = Vector3.Lerp(startTr.position, endTr.position, step * i);
pos.y += offsetY;
Quaternion q = Quaternion.Lerp(startTr.rotation, endTr.rotation, step * i);
Instantiate(cardObj, pos, q);
}
Instantiate(cardObj, endTr.position, endTr.rotation);
}
2020/04/03(金) 11:58:15.48ID:FOnjUPlX
>>21
ありがとうございます!
帰宅したら試させて頂きます!
2020/04/04(土) 16:15:41.57ID:4ueKdVKO
22です、今日一日色々試したのですが「カード真っ直ぐでも良いじゃない」という結論にいたり他の作業を進める事にしました。

丁寧にコードまで頂いたのに生かせず、質問するレベルにも達していない事を痛感しました。
回答頂いた方々申し訳ありません。
ありがとうございました!
2020/04/05(日) 02:57:21.95ID:ztdZ2vVQ
Unityで作ったゲームをリリース後に、バグ修正などのアップデート対応をするにはどのようにしたらいいでしょうか?
Unity、バグ修正、アップデート方法などで検索しても、Unity自体のアップデート解説が出てきて、
Unityで作った自作ゲームのリリース後のバグ対応のやり方が中々見つかりません。

ダウンロードとパッケージ販売を考えているので、ビルドしたプロジェクト丸ごと再ダウンロード以外の方法を探しています。
できれば修正パッチや、一部ファイルの差し替えなどでの方法を知りたいのですが、方法を教えて下さい。
解説しているサイトや書籍の紹介等もあればありがたいです
2020/04/05(日) 07:28:30.20ID:NQROyK9e
再ビルドして更新しか無いのでは?
アセットに分離出来るのは素材の部分だけだからさぁ〜
2020/04/05(日) 22:13:44.38ID:axCY1wGy
マウスクリックで指定した地点へ向けてキャラが放物線を描いて落下攻撃を仕掛ける行動を作ろうとしています
指定できる地点はキャラから半径数m以内の制限があり、その範囲内ならジャンプした時はどの距離でも同じ高さまで飛び、
指定した地点へ落下するようにしたいのですが、どのようにすればよいのかわかりません

リジッドボディにそういう放物線を楽に実装できる関数があるということなので使ってみた所、
ジャンプの前にキャラが地形をすり抜けて延々と落下してしまうため使えませんでした

仕方なくキャラクターコントローラーで実装しようとしているのですが、普通のジャンプのように
velocity.yに加速度を付与してその場で高く飛び上がるだけでうまくいきません

何か良い方法はないでしょうか
2020/04/05(日) 22:28:01.91ID:IzBcTrRn
テキストをくっきり表示させる方法あれば教えてほしいです
2Dスプライト画像のFilter ModeでPoint(no filter)を選択した時みたいに
キャンバスのテキストをぼやけないように表示させることってできますか?
2020/04/05(日) 22:53:22.01ID:KMyLdaHz
>>26
同じ高さで違う距離にするには、独自で座標処理するのが楽。
真面目な物理演算で求めるには、多分こういう質問してるぐらいだから、いまはやめた方がいいよ。
どうしてもやるっていうなら、ベロシティの挙動をしっかり把握、勉強して、着地地点からの逆算で角度と加速度を割り出す式を作る等がんばれ。
2020/04/06(月) 00:45:23.89ID:qWEPpdgk
ttps://keisan.casio.jp/exec/system/1204505768
で使っている式使えば良い
30名前は開発中のものです。
垢版 |
2020/04/06(月) 03:19:51.17ID:aeTkanm6
AdMobバナーの表示非表示切り替えがしたいのですがコードがうまく書けません

https://qiita.com/hymst/items/f1c70cdf14643b6f1c51
このページのコードを、初めに広告を表示させるシーンのオブジェクトにつけ、
  〜
//バナー表示の停止
public void StopBanner()
{
bannerView.Hide ();
bannerView.Destroy();
}
  〜

バナーを消したいタイミングのスクリプトの
void Start () { } の中に StopBanner(); と書くと
「現在のコンテキストに'StopBanner'という名前は存在しません」という赤線エラーが出るので、
修正候補に従って

private void StopBanner()
{
bannerView.Hide();
bannerView.Destroy();
}

を追加すると、
「現在のコンテキストに'bannerView'という名前は存在しません」という赤線エラーが出てしまいます。

どうすればいいのか教えてください。よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況