X



【ゲームエンジン】Unity初心者質問スレBuild4
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
垢版 |
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
0101名前は開発中のものです。
垢版 |
2020/04/11(土) 17:39:12.13ID:LqrATKHJ
ラインの通知みたいな赤い丸に数字が入ってるアイコンってUnityのUIにありましたっけ?
何処かで見た覚えがあるのですがアセットだったかな・・・。
0102名前は開発中のものです。
垢版 |
2020/04/12(日) 12:22:43.53ID:BLcL866+
>>97
これ調べてもわからないです
マジでお願いします。
0103名前は開発中のものです。
垢版 |
2020/04/12(日) 13:09:38.43ID:qtEGGwes
直訳すると、

「RequestBannerが悪いんじゃね?
bannerViewは田舎もんだから、もっと世界を見なくちゃあかんぜよ」

「もうひとつ問題があるっぺ。
HideAdでbannerViewを隠す前にデストローイ!してるべや。
bannerViewを隠してからデストローイ!してもいいけど、
べつにデストローイ!する必要ねぇんじゃね?」


・・・つまり、5行目にstaticを付けなさい、
  private static BannerView bannerView;
あとHideAdの中のDestroyはいらないよ、
ってことじゃね?

(補足)RequestBannerメソッドで、毎回bannerViewインスタンスをCreateしちゃってるから
毎回Createしないで、bannerViewをstaticにして、インスタンス作成済みなら作成済みのインスタンスを使いなさい、
ってことだな
0104名前は開発中のものです。
垢版 |
2020/04/12(日) 14:38:02.16ID:YyHebXAt
学術巨大掲示板群: アルファ・ラボ
ttp://x0000.net

物理学 化学 数学 生物学 天文学 地理地学
IT 電子 工学 国語 方言 言語学 など

PS 虫は宇宙人だよ ttp://x0000.net
0105名前は開発中のものです。
垢版 |
2020/04/12(日) 16:39:58.76ID:eDPCkeUz
スクリプトを書く時に使わないusingとかモノビヘイビアとかって皆さん消してますか?
消さないとどの様な弊害があるのでしょうか?
0107名前は開発中のものです。
垢版 |
2020/04/12(日) 18:34:44.63ID:eDPCkeUz
>>106
そんな機能あるんですか?
こちらはVS使ってますが使われてないusingはグレーアウトしてる感じです。
モノビヘイビアはコンポーネントを使わなければ消しても問題無いんでしたっけ・・・。

よく解説動画などで使わないので消しましょうみたいな流れがあるので読み込み速度等に影響するのかな?と思いまして。
0108名前は開発中のものです。
垢版 |
2020/04/12(日) 18:36:29.80ID:O9wm4Cdq
使わない部分はコンパイラが勝手に無視してくれるので残してようが問題ない。
単にソースが長ったらしくなって読みにくく鳴るから消そうねってだけ。
0109名前は開発中のものです。
垢版 |
2020/04/12(日) 18:48:36.84ID:HNHcGLA3
>>107
VSだけど拡張機能いっぱい入れてるから正確にどれが作用してるかわからんけど
保存時にコード自動フォーマットしてくれる時に消えてるからその辺
0110名前は開発中のものです。
垢版 |
2020/04/12(日) 21:41:34.58ID:IMe/uvVh
パソコンのメモリって8GBでも足りますか
unity動かすためにはこれぐらいで十分ですかね?
0115名前は開発中のものです。
垢版 |
2020/04/13(月) 09:52:11.08ID:1IyWOLTh
いや、unityは大きくなり過ぎてるから足りない。
特にアセットを数個入れるだけでギガ単位でプロジェクト容量が増えてく。
0119名前は開発中のものです。
垢版 |
2020/04/13(月) 17:03:13.79ID:W8iFMn3H
質問です
2次配列 INT型 (Y3,X10) を宣言したとして
Y0 = {1,2,3,4,5,6,7,8,9,0}
Y1 = {4,5,6,2,3,4,6,7,8,0}
Y2 = {4,2,3,4,5,6,2,8,9,0}
みたいにY軸にまとめて数値を入れたいのですが
どういうふうに記述すればいいですか?
0122名前は開発中のものです。
垢版 |
2020/04/13(月) 17:56:50.41ID:Zl6mUABL
紐状のオーラを体に巻き付けて動きをアシストさせて、身体機能を向上させる、
みたいな演出をしたいのですが、パーティクルで可能でしょうか?
それともBrenderで作るべきでしょうか

紐を巻き付けるという演出上、頂点数がすごいことになるのでそれにさらにアニメーションをつけるとかなり重くなりそうなので
何かもっと軽く作る方法はないものかと
0124名前は開発中のものです。
垢版 |
2020/04/14(火) 01:19:38.79ID:OujM5m2J
当たり判定の際、相手のパラメータをGetComponentせずに参照するやり方を教えて下さい。

■前提
攻撃側と防御側でコライダーが接触した際、攻撃側の攻撃力を参照して、防御側の防御力と差し引き、防御側のHPを減らしたいです。
コライダーの検知は防御側の当たり判定をつけた子オブジェクトにアタッチしたスクリプトでOnTriggerしています。
防御側のパラメータは、Startで親のパラメータをキャッシュできるのですが、攻撃側のパラメータは都度誰に攻撃されたか変わるので、
collisin..gameObject.GetComponentで相手のスクリプトを取得しています。

しかしGetComponentは重いので接触の度に行うのはパフォーマンスに不安があります。
小ダメージを連続多段ヒットさせる攻撃などは危ない臭いがしています。

しかし、OnTrigger内で相手のパラメータを参照する方法を調べても、GetComponent以外が中々見つからず困っています。
0125名前は開発中のものです。
垢版 |
2020/04/14(火) 07:27:02.72ID:F0R42j3I
接触時だけなら重くないはずですが。
そうでなければ、全て管理するしかないかと。
0126名前は開発中のものです。
垢版 |
2020/04/14(火) 07:55:35.84ID:pPWIKZgS
ゲームオブジェクトとコンポーネントを紐付けたディクショナリ作って
呼び出し時はそこからコンポーネントを取得するとか
0127名前は開発中のものです。
垢版 |
2020/04/14(火) 08:55:38.16ID:voGt/nBP
解像度によってPostProcessingのBloomがかなり見た目変わりますけど、皆さんどうやって対処してますか?
0128名前は開発中のものです。
垢版 |
2020/04/14(火) 22:29:52.11ID:IG2pgGi+
RPGのスキルの説明文やカードゲームのカードの効果のテキスト部分などは皆さんどうやって管理してますか?

一つ一つをプレハブ化して無理やりやる事も出来るのですが、もう少しスマートな方法が無いものかと模索しています。
0130名前は開発中のものです。
垢版 |
2020/04/15(水) 10:19:54.79ID:aOIdAe/5
rigidbody2dで水泳の蹴伸びみたいな反力を再現したいのですがうまく跳ねてくれません
どうすれば再現できますかね。。。
0131名前は開発中のものです。
垢版 |
2020/04/15(水) 11:55:11.62ID:UUYKPDdG
現在どうなっているのか、そこからどうしたいのかをもっと詳しく書かなきゃ答えられるはずなかろうにw
0132名前は開発中のものです。
垢版 |
2020/04/15(水) 12:15:26.63ID:yVr1KOQK
>>129
例えば説明文が「敵に5ダメージ」だとして、
5の部分を変数にしてバフ等の効果によって変更可能にしたい場合どう管理すれば良いのかが思いつきません。

今はひとつひとつを関数にして表示しています。

public string Attack(int playerAttack)
{
var text = $"敵に{playerAttack}ダメージ";
}

こんな関数をたくさん書いたクラスから呼び出してtextに代入する感じです。

理想としては、ScriptableObjectにstring Descriptionを追加してインスペクターに「$"敵に{playerAttack}ダメージ";」の様に書き込めると非常に楽なのですが、記号なども含めてそのまま表示されてしまいました。
インスペクターのフォーム内で変数を使用する方法はあるのでしょうか?

この様に変化するテキストを管理したい場合もエクセルは向いているのでしょうか?
0133名前は開発中のものです。
垢版 |
2020/04/15(水) 12:24:48.80ID:yVr1KOQK
>>130
物理挙動の話なら的外れかもしれませんが、
ttps://qiita.com/ryosebach/items/5bd90d4b464b9059f35d
ttps://qiita.com/pixelflag/items/e5ddf0160781170b671b
アニメーションの緩急はEasingと言うみたいです。
解決のヒントになれば良いですが。
0134名前は開発中のものです。
垢版 |
2020/04/15(水) 13:15:37.54ID:lnHW68ZC
質問です
カメラを矢印キーで上下に動くようにしたいのですが…

下のスクリプトにtransform.Translate(0,1f,0)のように書き足してみたのですが、カメラが1f上を写すだけで移動しませんでした。
2Dです。

public GameObject Player;

void Update()
{
Vector3 PlayerPos = Player.transform.position;
transform.position=new Vector3(PlayerPos.x,0,-10);
}
0136名前は開発中のものです。
垢版 |
2020/04/15(水) 13:40:58.84ID:lnHW68ZC
>>135
カメラのスクリプトです
このスクリプトだとプレイヤーのx軸を追従するようになってます
0138帝王
垢版 |
2020/04/15(水) 14:02:51.23ID:PFjTS2Tn
いや違うだろw
カメラを十字キーで上下だぞ
x座標をプレイヤーポジションに合わせているだけで
入力すらとってないじゃないか
0139帝王
垢版 |
2020/04/15(水) 14:08:21.41ID:PFjTS2Tn
よくわかんないから
きちんと書いてくれないか?
x軸はいいからy軸をどうしているのか
0140名前は開発中のものです。
垢版 |
2020/04/15(水) 14:08:31.08ID:lnHW68ZC
>>138
一応
if(Input.GetKey(KeyCode.UpArrow))
{
transform.Translate(0,1f,0)
}
のような形でキー入力は入れてみたんですが、これだと上キーを押した時にカメラが1フレーム上に移動するだけでした…
0141名前は開発中のものです。
垢版 |
2020/04/15(水) 14:09:48.32ID:lnHW68ZC
>>139
プレイヤーをジャンプさせたときに一緒にカメラが移動してしまうので0にしています
0のままだと動かないそうですが、どう変えればいいのかわからず…
0142名前は開発中のものです。
垢版 |
2020/04/15(水) 14:17:38.35ID:PFjTS2Tn
毎フレームy座標が0に戻ってるのでは?
yもプレイヤーに合わせるからなるんじゃないのかな
transform.position.xでx座標だけプレイヤーのx座標にしたらどうだ?
0143名前は開発中のものです。
垢版 |
2020/04/15(水) 14:28:05.74ID:lnHW68ZC
ありがとうございます
transform.position.xはどこに入れるのが正しいんでしょうか…
いろいろと試してみたのですがことごとくエラーを吐かれてしまいまして
0144名前は開発中のものです。
垢版 |
2020/04/15(水) 14:31:19.37ID:JTV4iwjm
>>142
これやると何故かエラー出るんだよなぁ

var x = Player.transform.position.x;
var y = transform.position.y;
if(Input.GetKey(KeyCode.UpArrow))
y+=1;
else if(Input.GetKey(KeyCode.DownArrow))
y-=1;
transform.position = new Vector3(x,y,-10);
これで
0145名前は開発中のものです。
垢版 |
2020/04/15(水) 14:38:32.35ID:lnHW68ZC
>>144
ああああああできました!!
ありがとうございます!!
0146名前は開発中のものです。
垢版 |
2020/04/15(水) 14:39:29.09ID:lnHW68ZC
お二方ともご丁寧にありがとうございました!
0147名前は開発中のものです。
垢版 |
2020/04/15(水) 15:48:30.60ID:bwJYFlmz
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0

UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0

連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0

4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0

matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0

ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0

SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
0148名前は開発中のものです。
垢版 |
2020/04/15(水) 20:56:57.45ID:8YH6OY1K
rigidbodyにおいて、質量(密度?)を不均一にしたい(おきあがりこぼしのように一部は重く、一部は軽いというような)のですがやり方を御教授頂けないでしょうか。
0149帝王
垢版 |
2020/04/15(水) 22:58:43.68ID:PFjTS2Tn
フリーズローテーションとかじゃダメな気がするので
blender等でならオブジェクトのピボット中心点を移動できる
でもrigidbodyをつけるなら形の通りに動くのだろうか
マトリョーシカ(ロシアの人形ね)みたいな卵型を使うとして
オブジェクトを5分割とかにしてみて別々(もとは同じ)のオブジェクトを装備しているような感じにして
fbxで一緒にくっつけて書き出して
メッシュコライダー入れてリジットボディでmassでそれぞれの部位に重さを設定すれば
いけるんじゃないか
物理でバラバラにはならないと思うけどなるなら
blender等で全選択して押し出しでオブジェクトの膜を作って
バラバラにならないように外側を固めるとか
>>148さんが言うような機能は
たしかにblenderとかではウェイトペイントという機能はあるが
あれはボーンにどのくらい追従するかを設定するだけだから違う
無知ですまん
0150名前は開発中のものです。
垢版 |
2020/04/16(木) 01:37:50.84ID:TrwSK5Ca
UNITYの教科書って本には、
プレファブ作ってスクリプトから生成するとき
 GameObject obj=Instantiate(prefab) as GameObject;
と記述するとあるのですが、
これの「as GameObject」付けなくても生成してくれるんですが、
省略してもいいんでしょうか?
0151名前は開発中のものです。
垢版 |
2020/04/16(木) 06:07:39.54ID:f9bKhCih
staticのシングルトンで作ったDataクラスに GameObject型のenemy1を宣言し、
別のスクリプトからプレハブをロードしてインスタンスしたところ、シーン上ではプレハブが表示されたもののなぜかnullエラーが出てしまいます。
同じプレハブをstaticでない通常の変数で宣言してインスタンスするとエラーは出ないのですが何が原因でしょうか?

//========■シングルトンのDataクラス↓

public class Data : MonoBehaviour
{
public static Data btdata = null;

private void Awake()
{
if (btdata == null)
{
btdata = this;
DontDestroyOnLoad(this.gameObject);
}
else
{
Destroy(this.gameObject);
}
}

public GameObject enemy1 = null;

//========■別のスクリプト↓

GameObject obj = (GameObject)Resources.Load("Enemy_Chinpira");
Data.btdata.enemy1 = (GameObject)Instantiate(obj,new Vector3(0.0f, 0.0f, 0.0f),Quaternion.identity); ←NULLエラーは出る

GameObject hoge = (GameObject)Instantiate(obj, new Vector3(0.0f, 0.0f, 0.0f), Quaternion.identity);  ←こっちだとエラーは起きなかった
0152くまじょ
垢版 |
2020/04/16(木) 07:28:05.42ID:RAGlvlvv
>>151
シングルトンが不完全
どこよりも先にこいつのawakeが実行されるわけではないのでは?
0153くまじょ
垢版 |
2020/04/16(木) 07:38:25.42ID:/YRdqyfH
>>151
別のスクリプトのawakeで実行してるとか

※個人の感想
個人的には複数シーンを使うときこのやり方は俺の好みではない
0155くまじょ
垢版 |
2020/04/16(木) 07:39:08.75ID:/YRdqyfH
>>152
不完全というのは不適切でした
0156くまじょ
垢版 |
2020/04/16(木) 07:43:52.45ID:/YRdqyfH
>>154
このシングルトンのオブジェクトを
このシングルトンを使うすべてのシーンに
一つ置いてますか?

このシングルトンのawakeが実行されていないと思われるのでスクリプトがあるだけでこのシングルトンのゲームオブジェクトが存在しないのではないかと思う
0157名前は開発中のものです。
垢版 |
2020/04/16(木) 08:00:07.67ID:f9bKhCih
>>156
すみません。テストをしているシーン上にDataをアタッチしたオブジェクトを置かれていませんでした…
シーンに配置したところエラーが出なくなりました。ご指摘ありがとうございます!
0158名前は開発中のものです。
垢版 |
2020/04/16(木) 08:09:37.51ID:f9bKhCih
すいませんもう一つだけ教えてください。ついさっきDataがシーン上にない時に試行錯誤しているうち
シングルトンの public GameObject enemy1 = null; を public staticに変えて、
Data.btdata.enemy1 = ... の部分を Data.enemy1 =  ... という記述に変えたことでもエラーが出なくなった事に気づいたのですが、

これは普通のpublicだとbtdataをシーン上に配置してインスタンスしないとアクセスできないけど、
public static だとインスタンス無しでアクセスできる、ということなのでしょうか?
0159くまじょ
垢版 |
2020/04/16(木) 08:36:18.21ID:8aea26m5
>>158
正確にどういうスクリプトになったのか曖昧なので俺にはわからないのでわかりません

staticつけたものはインスタンスとは独立してるからね
インスタンスがいくつでも0個でもstaticは一つ存在する

でもシングルトンのインスタンスを一つ作ることになるけどね
シングルトンの中身の全てにstaticをつけるとかしないから
0160名前は開発中のものです。
垢版 |
2020/04/16(木) 08:51:29.56ID:f9bKhCih
>>159
ありがとうございます。シングルトンの解説をしているサイトでメンバ変数にstaticがあるものとないものがあるのはなんでだろうと思ってたんですが、少し理解できました。
0162名前は開発中のものです。
垢版 |
2020/04/17(金) 05:57:19.40ID:VOQWR+Wk
ゲームオブジェクトのプレハブを動的に切り替える事はできないのでしょうか?
共有のゲームオブジェクトを一つ作り、その中に複数のprefabをアタッチしておき、ゲームの状況に応じてprefabを切り替える…ということをやりたいのですが、上手くいきません。

instantiateをするとクローンの別オブジェクトは生成されるのですが、別オブジェクト生成ではなく自分自身のprefabを切り替えたいです
0165名前は開発中のものです。
垢版 |
2020/04/17(金) 11:50:59.54ID:ZJBJxQUO
アニメーションクリップを作るときに、
imageをまとめてSceneビューにドラッグ&ドロップして作るときと
アニメーションウィンドウに画像をドラッグ&ドロップして作るときとで
アニメーションの速度が全然違うのですが、どうしてでしょうか。
タイムラインの秒数は同じはずなのに速度が全然違います。
0166名前は開発中のものです。
垢版 |
2020/04/17(金) 17:22:44.21ID:SVOeOAOE
3Dのゲームなのですが、避雷針のようなものを設置して、それを中心に一定範囲内で発動した魔法はすべて避雷針に向かってしまい、
実質魔法が無効化される、というシステムを考えています

スフィアコライダを使ってその範囲を作り、接触した魔法を中央の避雷針に飛ぶように軌道修正させようとしましたが、
魔法自体何かに接触すると効果を発動して消えるものであるため、スフィアコライダに接触した時点で消えてしまいました

魔法を無力化する効果自体はこれでも十分ではあるのですが、できれば軌道が変わることで意外な場所に着弾したり、
魔法を受け続けた避雷針が破裂するか何かして周囲に被害をもたらしたりとかしてみたいので、消えてほしくはありません

何か良い方法はありませんでしょうか
0169名前は開発中のものです。
垢版 |
2020/04/18(土) 07:04:01.39ID:aB+KxVXg
無料版unityで作ったアプリをGoogleplayに出して遊んでみたらmade with unityのロゴが出なくなったんですが仕様ですか?
0170名前は開発中のものです。
垢版 |
2020/04/18(土) 09:07:20.83ID:ctOwdfD6
>>103
ありがとうございます。

WebViewを表示したときにAdMobを消して
WebViewを消したときにAdMobがまた出るようにしたくて、

まずAdMobのスクリプトで
public static BannerView bannerView;
にして

public void HideBanner()
{
bannerView.Hide();
}

public void ShowBanner()
{
bannerView.Show();
}

を追加して、

WebViewを出すためのボタンを押したときのスクリプトに
AdMob.bannerView.Hide();
を書いたら
WebViewを出すときにAdMobを消すことができました。

(続きます)
0171名前は開発中のものです。
垢版 |
2020/04/18(土) 09:13:51.88ID:ctOwdfD6
(続き)
そして、以下のWebViewのスクリプトに
-----------------------------------------------------
void Start()
{

     〜 (略)WebViewを表示させる部分 〜

webView.OnShouldClose += (view) =>
{
webView = null;
return true;
};

webView.OnMessageReceived += (view, message) => {
if (message.Path.Equals("close"))
{
Destroy(webView);
webView = null;
}
};
}

void Restart()
{
if (webView != null)
{
webView.Reload();
}
}
-----------------------------------------------------
(続きます)
017297
垢版 |
2020/04/18(土) 09:14:48.69ID:ctOwdfD6
(続き)

自分で色々試してこれを追加すると、
void ShowBanner()
{
if (webView == null)
{
AdMob.bannerView.Show();
}
}
WebViewをバックボタンで消すときにAdMobを再表示させることができたのですが、
もう一度WebViewを出すと、AdMobが消えずに残ったままになってしまいます。
webView == nullがずっと影響してしまうのでしょうか
どうすればいいのか教えてください。
0173名前は開発中のものです。
垢版 |
2020/04/18(土) 14:06:29.92ID:ctOwdfD6
>>172は間違いでした。訂正です。
このUpdateの方を追加すると、

void Update()
{
if (webView == null)
{
AdMob.bannerView.Show();
}
}
>>172のような状態になります。
0174名前は開発中のものです。
垢版 |
2020/04/18(土) 14:11:33.53ID:z8IRbjj0
if (Random.Range(1, 4) == 1 && 2)
{
Debug.Log("三分の二で入る");
}
と書くと
エラー CS0019 演算子 '&&' を 'bool' と 'int' 型のオペランドに適用することはできません
というエラーが出てしまうのですが、これと同じような処理をしたい場合どのように記述すればいいのでしょうか。
0176174
垢版 |
2020/04/18(土) 16:03:25.48ID:z8IRbjj0
>>175どうも有難うございます!
0177名前は開発中のものです。
垢版 |
2020/04/18(土) 17:40:56.82ID:LRtmG8cA
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0

UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0

連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0

4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0

matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0

ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0

SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
0178名前は開発中のものです。
垢版 |
2020/04/19(日) 04:12:48.26ID:1PPWw4FK
キーを押したら平行ライトの角度が変えられるスクリプトで質問したいです。
元のライトの角度が(50,-30,0)とかになっていてたとします。
リセットキーをつけようとQuaternion.identityをつかうと0,0,0
になってしまいます。
もとの(50,-30,0)にもどす(リセット)するにはどうしたらいいでしょうか?
よろしくお願いいたします。
-------------------------------
if (Input.GetKey(KeyCode.U))
{
transform.Rotate(50 * Time.deltaTime, 0, 0);
}
if (Input.GetKey(KeyCode.I))
{
transform.Rotate(-50 * Time.deltaTime, 0, 0);
}
if (Input.GetKey(KeyCode.O))
{
transform.Rotate(0, -50 * Time.deltaTime,0);
}
if (Input.GetKey(KeyCode.P))
{
transform.Rotate(0, 50 * Time.deltaTime,0 );

}
if (Input.GetKey(KeyCode.L))
{
transform.rotation = Quaternion.identity;

}
0179名前は開発中のものです。
垢版 |
2020/04/19(日) 07:08:12.21ID:g5SC/sTa
>>178
俺は初心者なので詳しいことは知らんが
角度って難しいね

回転(相対変化)じゃなくて角度を指定したいとか
検索しても話がかみ合わない
0181178
垢版 |
2020/04/19(日) 09:29:41.76ID:1PPWw4FK
ありがとうございます。
いろいろ試して
最後のリセットさせようとする文を

transform.rotation = Quaternion.Euler(50, -30, 0);

にしました。
初期値を自分で書いてそれに戻してるだけですが機能しました。
正しいやり方ではないと思いますが。
0182名前は開発中のものです。
垢版 |
2020/04/19(日) 10:03:59.90ID:VkHE7jHb
>>181
リセット時に向く方向を変数にして、
インスペクタから指定できるようにするとか、
start関数内で現在の向きを変数に格納しておく、
とかにすると使い勝手がいいかもしれません。
0183名前は開発中のものです。
垢版 |
2020/04/19(日) 12:03:44.34ID:iMvDFyAq
位置とスケールは簡単なのに角度になると急に面倒に…
0〜180、0〜 -180、0〜360とかぁ〜
0184名前は開発中のものです。
垢版 |
2020/04/19(日) 18:44:44.40ID:XRjxy4OE
他オブジェクトにつけたスクリプトを参照できるようなスクリプトを書きたいのですがどのように書けばいいんでしょうか…
プレイヤーキャラのスクリプトから向きの情報を得て弾の進行方向を変えるような感じをイメージしているんですが。
0186名前は開発中のものです。
垢版 |
2020/04/19(日) 20:26:54.21ID:NPwmi6aX
animatorについてなんだけど、3dモデルに他のキャラのアニメーション付けてもちゃんと動いてくれるの?
VRMとかにモーションつける時とか違うキャラの付けてもちゃんと動いてるのが不思議で
0187名前は開発中のものです。
垢版 |
2020/04/19(日) 23:55:02.39ID:1PPWw4FK
>>186
ボーンがUnityの指定しているHumanoidの仕様で、ある程度ちゃんとつけられた
キャラなら他から持ってきた動きでも動いてくれると思います。
0188名前は開発中のものです。
垢版 |
2020/04/20(月) 13:43:13.94ID:u07mKJre
Youtubeの画面下の横長動画プレイヤーみたいなのを作ろうとしているのですが、うまくいきません。

1.空オブジェクト(A)を作成。各種UI Buttonをその子として入れる。
2.別途UI Panelオブジェクト(B)を作成。Aには入れない。
3.Bに「イベントトリガー」コンポーネントをつけ、Pointer EnterでAのSetActiveをONに。Pointer ExitでOFFに。
4.BをAよりも画面手前に置くと、Aのボタンが反応しなくなる
5.BをAよりも画面奥に置くと、AのボタンにマウスーオーバーしたときABともに高速点滅する
0190名前は開発中のものです。
垢版 |
2020/04/20(月) 14:42:58.66ID:zd2flDEV
>>184です
参照する方法は分かったのですが、弾を発射した後にプレイヤーの向きを変えるとそれに伴って弾の進行方向まで変わってしまうようになりました…
(右に発射したあと左を向くと弾の方向も左に変わってしまう…というような感じです)

発射した時点で進行方向を固定する関数などあれば教えていただきたいです。

>>185
一度は思いつくものの形にするには時間かかりますよね…
レスありがとうございます😊
0192名前は開発中のものです。
垢版 |
2020/04/20(月) 15:01:19.48ID:Z9e9J0rW
ゲームにはよくパワーアップやパワーダウンの効果をもつバフ、デバフがあると思います

こういったものというのは、先に計算を行って置き、実数を変更しておくのが一般的なのでしょうか
それとも、効果を発揮する状況になったとき(たとえば攻撃時、攻撃力の値が必要になったとき)に毎回算出するのが一般的なのでしょうか

前者の場合だと計算は完了しているため後は値を参照すればパワーアップ状態での行動に反映でき、負荷が軽くなるとは思うのですが、
パブ、デバフの効果切れの際に、特に乗算等で計算していた場合、パワーアップ中にレベルアップや装備変更などで元の値が変化してしまうと
効果切れの処理のときに元の値が狂ってしまうバグが発生してしまいます

後者の場合だと前述のバグは発生しにくいとは思いますが、攻撃のたびにパワーアップ分を計算しなくてはならず、
簡単な計算とはいえ毎回負荷がかかってしまいます

今作っているのは3Dでリアルタイムで動くRPGのようなもので将来オンライン化を目指していますが、
バグの回避と拡張性の問題から後者の手段を取ろうと思っているのですが、処理負荷がどう響くのか分かりません

とりあえず一般的な手法ならそれなりに実績もあるだろうということで、どちらが一般的でしょうか
0193名前は開発中のものです。
垢版 |
2020/04/20(月) 15:10:33.56ID:zd2flDEV
>>191
Startに入れて実行したら弾が進まなくなりました…
なぜなんでしょうか…
0194名前は開発中のものです。
垢版 |
2020/04/20(月) 15:49:24.30ID:BqIKHtjL
>>192
前者でも元の値が変わったときに再計算をはさんでおけばバグは起きないだろうし、攻撃のたびに単純な計算するくらいの負担を気にする必要があるとも思えないです。
攻撃速度が1秒間に100回で複数の敵に多段ヒットしまくる様な特殊なゲームでなければですが。

>>193
方向の決定をStartでして、その方向にupdateで進めればいいんじゃない?
0195名前は開発中のものです。
垢版 |
2020/04/20(月) 16:27:38.06ID:hAG3HiSQ
scriptを用いて指定オブジェクトの色をGetComponent<Image>().material.color で変更しようとしたところ
指定したオブジェクト以外の色も変更されてしまいます。
指定したオブジェクトのみ変更させたい場合どうしたらよいでしょうか

Default UI Material というのが指定した色になっていました。
0197名前は開発中のものです。
垢版 |
2020/04/20(月) 16:36:35.22ID:7TeDGIGu
>>195
確か、マテリアルカラーはパレットだから、ほかのオブジェクトでも使ってたら変わったよ。
それが嫌なら専用のマテリアルを作るのが1番かな。
0198名前は開発中のものです。
垢版 |
2020/04/20(月) 16:46:25.44ID:hAG3HiSQ
返答ありがとうございます。
指定したImageオブジェクト(ほかのオブジェクトも)のmaterialを設定していませんでした。
指定オブジェクトのmaterialを「Sprites-Default」に設定したところ
指定したオブジェクトのみ色を変えることができました。ありがとうございます。
0199名前は開発中のものです。
垢版 |
2020/04/20(月) 17:10:09.14ID:zd2flDEV
>>196
GameObject Player;
SpriteRenderer Renderer;

void Update()
{
bool left =Renderer.flipX //左向きのときtrue

if(left==true)
{
transform.Translate(-0.5f,0,0);
}
else
{
transform.Translate(0.5f,0,0);
}

}

というスクリプトをUpdateに入れています
Update関数の中にプレイヤーの向きの情報が入っているので、弾が常にそれに連動してしまうのはわかるんですが…
0200名前は開発中のものです。
垢版 |
2020/04/20(月) 17:33:02.98ID:QzIkkg0M
unity(2D)って、ひょっとしてそれほど画像の大きさは気にしなくていいですか?
カメラサイズとかで調整して、カメラで見えたものがそのまま映像として出る感じ?
■ このスレッドは過去ログ倉庫に格納されています

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