[過去ログ] 【3Dゲームエンジン】Unity質問スレッド34 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
34: 名前は開発中のものです。 [sage] 2018/02/12(月) 12:45:05.55 ID:dF91tgne(1) AAS
絵描きのみの人は思い付きで色々と言ってくるがプログラムってのはそんな矛盾だらけの感覚では作れないっていう事を最低限理解すべきだと思う。
絵自体が嘘だらけの物なので真逆の感性だとは思うがな。
35
(1): 名前は開発中のものです。 [sage] 2018/02/12(月) 13:18:39.66 ID:Dxdq8OQu(2/2) AAS
↑絵描きも同じかと
36: 名前は開発中のものです。 [sage] 2018/02/12(月) 13:21:09.38 ID:eEVFdBWd(1) AAS
分かってない奴に土足で踏み込まれる事には不快感を示すんだなw
37
(1): 名前は開発中のものです。 [sage] 2018/02/12(月) 13:21:24.96 ID:2m1iD4au(1/3) AAS
コルーチンの停止について質問させてください。
以下のコードのようにクリックしたらtestCoroutineを止めるというのをやりたいのですが、
testCoroutineだけでなくStart()の中のコルーチンもなぜか止まってしまいます。
(実際にコンソールに"startCoroutine"が表示されない)
testCoroutineのみを止めるにはどうすればよいでしょうか?

public class CoroutineTest : MonoBehaviour {
IEnumerator testCoroutine;
IEnumerator Start() {
while (true){
testCoroutine = TestCoroutine();
yield return StartCoroutine(testCoroutine);
Debug.Log("startCoroutine");
yield return null;
}
}

void Update () {if(クリックしたら) StopCoroutine(testCoroutine);}

IEnumerator TestCoroutine(){
while (true){
Debug.Log("testCoroutine");
yield return null;
}
}
}
38: 名前は開発中のものです。 [sage] 2018/02/12(月) 13:35:14.32 ID:K7aTOKwb(2/2) AAS
>>35
そろそろスレの趣旨からずれてるから
39
(1): 名前は開発中のものです。 [sage] 2018/02/12(月) 14:42:12.10 ID:5ZDWuOC7(1/2) AAS
>>37
startはコルーチンとして呼ばれた物じゃないし唯のループでないの?
ネストするなら手抜きしないで、もう一つコルーチン作ればいんじゃね?
40
(2): 名前は開発中のものです。 [sage] 2018/02/12(月) 15:18:34.62 ID:2m1iD4au(2/3) AAS
>>39
レスありがとうございます!
試しに以下のようにしてみたところ、終了してないはずのTestCoroutine2まで終了してしまいました。
何か間違っているところがございますでしょうか?
public class CoroutineTest : MonoBehaviour {

 IEnumerator testCoroutine;

 public void Start() {
  StartCoroutine(TestCoroutine2());
 }

 IEnumerator TestCoroutine2(){
  while (true){
   Debug.Log("startCoroutine");
   testCoroutine = TestCoroutine();
   yield return StartCoroutine(testCoroutine);
   yield return null;
}
 }

 void Update () {
  if(クリックした) StopCoroutine(testCoroutine);
 }

 IEnumerator TestCoroutine(){
  while (true){
   Debug.Log("testCoroutine");
   yield return null;
  }
 }
}
41: 名前は開発中のものです。 [sage] 2018/02/12(月) 15:40:31.28 ID:RbPh280p(1/2) AAS
コルーチンはアセットを買えば使う必要ないですよ
42
(1): 名前は開発中のものです。 [sage] 2018/02/12(月) 15:42:50.68 ID:5ZDWuOC7(2/2) AAS
>>40
testCoroutine = TestCoroutine();をStartに入れて
ループで呼び出さなければ1つだけ止まると思うけど

1ループごとにに呼び出されるTest1が増えるから
どれが何番目に立てたコルーチンなのか確認のしようがないが
Test1が複数、Test2が1つの状態で回り続けるんでね?
43
(1): 名前は開発中のものです。 [sage] 2018/02/12(月) 15:49:59.19 ID:tt2yigoC(1/2) AAS
>>40
Startメソッドはコルーチン化できるからIEnumerator Start()でも大丈夫だよ。
StopCoroutineはあくまでコルーチンを一時停止するだけだから、終了まではいかずに
コルーチンを停止ではなくて終了させたい場合は、呼び出しているコルーチンの内部でyield breakをするのがいいと思うよ。
44
(5): 名前は開発中のものです。 [sage] 2018/02/12(月) 16:01:09.12 ID:pMxt/fFP(1/3) AAS
UIのBUTTONで質問なのですが、クリックした状態からボタン外にカーソルを持って行き、
またボタンの上に戻してポインタアップしたときにボタンが動作しないようにしたいのですが、
どのように実装すれば良いでしょうか?
45
(1): 名前は開発中のものです。 [sage] 2018/02/12(月) 16:21:33.04 ID:RbPh280p(2/2) AAS
>>44
アセットを買って実装しましょう
46
(3): 名前は開発中のものです。 [sage] 2018/02/12(月) 16:31:10.57 ID:pMxt/fFP(2/3) AAS
>>45
ありがとうございます。
どのアセットが一番良いですか?
47: 名前は開発中のものです。 [sage] 2018/02/12(月) 16:37:08.63 ID:2m1iD4au(3/3) AAS
>>42-43
レスありがとうございます!
とりあえずコルーチンの内部から終了させることにしました。
ありがとうございました!
48
(1): 学生 [sage] 2018/02/12(月) 18:55:06.07 ID:1HtDYDgo(1/3) AAS
>>46
そいつはアセットおじさんといってアセット買えとしか言わずに具体的にどのアセットかも言わん迷惑なやつだから反応しない方がいいぞ
49: 名前は開発中のものです。 [sage] 2018/02/12(月) 18:56:09.56 ID:1HtDYDgo(2/3) AAS
ごめん他スレのコテつけっぱだった
50: 名前は開発中のものです。 [sage] 2018/02/12(月) 19:20:52.54 ID:nus0MXm1(1) AAS
>>46
そこでお前が調べて「このアセットがいいと思うんですがどうですか?」だろ
だいたいタダで何でも聞こうと思うな
お前は人に何でも聞かないとUnityで何も出来ないバカと決まりました
51
(1): 名前は開発中のものです。 [sage] 2018/02/12(月) 19:32:40.08 ID:4qkMtmY+(1) AAS
上手い返しが出来ず>46に敗北したアセットおじさんの言い訳をご覧ください
52
(1): 名前は開発中のものです。 [sage] 2018/02/12(月) 20:14:06.89 ID:yeanmuVd(1/2) AAS
>>44
カーソルがボタン外に出た時に、もしOnMouseExitとかが掛かるなら、
EventSystem.current.SetSelectedGameObject (null);
で選択解除出来るかも知らんね
53
(1): 名前は開発中のものです。 [sage] 2018/02/12(月) 20:17:46.99 ID:yeanmuVd(2/2) AAS
マウスイベント拾えんかったら、タイマーでn秒以上マウスボタンをホールドしたら
解除するように仕込んでおくとか、何か仕込みは出来んじゃね?
54
(1): 名前は開発中のものです。 [sage] 2018/02/12(月) 20:30:12.04 ID:v5WO6HHA(1) AAS
>>44
外部リンク:qiita.com
ヒントあると思う。
55
(2): 名前は開発中のものです。 [sage] 2018/02/12(月) 21:33:09.44 ID:851O/k+8(1) AAS
>>44
PointerDownでボタンのInstanceIDを変数に入れて保持し
PointerUpで比較すればいいのさ
56
(1): 名前は開発中のものです。 [sage] 2018/02/12(月) 22:05:24.63 ID:tt2yigoC(2/2) AAS
>>44
public class ExitDeselectButton : UnityEngine.UI.Button
{
private bool isExited = false;
public override void OnPointerExit(UnityEngine.EventSystems.PointerEventData e) {
base.OnPointerExit(e);
isExited = true;
}
public override void OnPointerClick(UnityEngine.EventSystems.PointerEventData e) {
if(!isExited) base.OnPointerClick(e);
}
public override void OnPointerDown(UnityEngine.EventSystems.PointerEventData e) {
isExited = false;
base.OnPointerDown(e);
}
}
57: 名前は開発中のものです。 [sage] 2018/02/12(月) 22:31:52.79 ID:pMxt/fFP(3/3) AAS
>>48>>51-55
ありがとうございます。
一先ずコードで実装しなければいけないことが分かって安心しました。
EventSystem.current.SetSelectedGameObject (null);では上手くいかなかったため、
リンク先の変数を使用した分岐で実装しようと思います。

>>56
と思っていたらコードまでご丁寧にありがとうございます!
上手く実装して最後まで作り上げようと思いますm(_ _)m
58
(2): 名前は開発中のものです。 [sage] 2018/02/12(月) 23:08:18.47 ID:1HtDYDgo(3/3) AAS
他のスクリプトからメソッド呼び出すとき
Sprict spprict から
sprict.メソッド()でエラーでて
public Spprict sprict でオブジェクトをしていしてからメソッドよびだすとエラーでないのは何で?

pubblicで宣言しないとき同じGameobjectにアタッチしないといけないなんて制約あったりするの?
1-
あと 944 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.090s