トップページgamedev
1001コメント361KB

【3Dゲームエンジン】Unity 7

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2011/12/20(火) 03:42:43.52ID:PZuN57ft
3Dゲームエンジン「Unity」のスレです。

公式サイト(英語)
ttp://unity3d.com/unity/

JavaScript、C#といった汎用言語を使用できるのが特徴です。
個人向けバージョンは商用含め完全に無償です

wiki
ttp://www24.atwiki.jp/unity2ch/

前スレ
【3Dゲームエンジン】Unity 6
http://toro.2ch.net/test/read.cgi/gamedev/1322167021/
0760名前は開発中のものです。2012/01/19(木) 11:37:59.59ID:uyMsy6zi
getChildの引数は何指定すればいいの?タグ?
0761名前は開発中のものです。2012/01/19(木) 11:44:15.66ID:Gd6xy/+Z
stringの事を言っているのなら使ったことがないので知らん
GameObjectの名前かタグだろう
0762名前は開発中のものです。2012/01/19(木) 12:09:30.12ID:sNbstNTS
オライリーのUnity本が電子化してるよ。
値段も実本より1000円ぐらい安かったと思う。
0763名前は開発中のものです。2012/01/19(木) 12:11:11.46ID:Ayt7yW8D
>>759
横からだけどものすごく助かった
そうか、なんとなく予感はしてたけど、やっぱりリファレンス不備があるのか…
thx
0764名前は開発中のものです。2012/01/19(木) 12:31:28.92ID:6FLu4Qkn
オライリーって2月に安売りするんだっけ?
0765名前は開発中のものです。2012/01/19(木) 13:05:41.03ID:0AxQpD2t
Unity勉強してもどうせネタはないんだろ。これ作れって

ttp://gigazine.net/news/20120119-assassin-of-the-mushroom-mountain/

0766名前は開発中のものです。2012/01/19(木) 15:47:28.99ID:MH/yecKO
Unity の ShaderLab 経由で Cg を調べてて、リファレンス本買ってこようかと思ったが、
さしあたり 日本語版PDFみつけたので貼り。古いけど。全300ページ
ftp://download.nvidia.com/developer/cg/Cg_Users_Manual_JP.pdf
0767名前は開発中のものです。2012/01/19(木) 15:51:59.04ID:Gd6xy/+Z
今時Cgなんて何に使うんだ?
0768名前は開発中のものです。2012/01/19(木) 16:03:38.22ID:eR8yo7zz
>>767
たぶん君の程度では使わなくていい
0769名前は開発中のものです。2012/01/19(木) 16:19:45.86ID:qMI+ZH7R
>>768
君の程度ではそれくらいの発想しかないんだな
0770名前は開発中のものです。2012/01/19(木) 16:27:48.03ID:MH/yecKO
>>767-769
お前ら、何を思ってそのレスを書いたか、もっとはっきりしやがって下さい

Cgダメなら、HLSLベースにしろと? 個人的には OpenGL(ES) 派なんだけど、Cg 面白いなぁと思って最近いじってる
0771日系アメリカ人2012/01/19(木) 17:02:24.10ID:Kh5wvxfu
お前らさあ本当にゴミだね
まじつまんねーから
そんなゲーム誰もやらないよ お前らが作ったゲーム
85円とかで売っててもゴミくせえ
バカ?お前らそういう「ゲーム作りたい!」とかいってるなら
大手会社行けば良いじゃん バカだな お前らクズだな
Unity(笑) まじつまんねごみみてえなカスども カスくさっ

凄いやつは昔からOpenGLとかそういうの使ってプログラムバリバリ書いてんだよ
ゲーム開発ゆとりのお前ら Unity 「プログラミングは不要になるなあw」とかほざいてるゴミに何が出金だよゴミ
おい
ゴミだな欧米以下のゴミゲー つくらなくていいよ
やちまえ

作っても既に出てるゲーム以下w
0772名前は開発中のものです。2012/01/19(木) 17:04:11.83ID:6FLu4Qkn
お前らの言ってることは理解できん。
いいシェーダーが出来たら売ってください。お願いします。
0773名前は開発中のものです。2012/01/19(木) 17:06:46.52ID:2/tFr+2G
言語覚えなくったって、シェーダーツリーで間に合うだろ。
0774名前は開発中のものです。2012/01/19(木) 17:13:16.94ID:eR8yo7zz
>>770
ttp://unity3d.com/support/documentation/Manual/ShaderTut1.html
どっちも使えるってよ。ほんとマニュアル読まないんだなぁ
0775名前は開発中のものです。2012/01/19(木) 17:16:39.66ID:GysxupSo
>>774
それを知らないって誰か言ったか?
0776名前は開発中のものです。2012/01/19(木) 17:29:10.77ID:MH/yecKO
>>774
いや使えるのは知ってるし、読んでるよ。てか、そんな話はどうでもよくて、
上にも書いてるが、俺は単にCgに興味があって、本買おうかと思ってる中、リファレンス見つけたから貼っただけさ

そしたら、「今時それを何に使うのか」 と聞かれたから、CgでないならHLSLにしろと?と返事した
つまり、何故そのレスがついたのかと思って、「何を思ってレスしたのか」 と聞いた。 それだけの話

>>773
言語に用があるんだよ俺は
0777名前は開発中のものです。2012/01/19(木) 17:41:25.78ID:hZ0I/NSm
CgってRadeonやIntelオンボとの互換性大丈夫なの?
0778名前は開発中のものです。2012/01/19(木) 18:09:46.58ID:MH/yecKO
>>777
ね、そこだよね。正直その辺の事情こそ、まさにシラネ
調べないとワカンネ
0779名前は開発中のものです。2012/01/19(木) 18:20:46.77ID:ZQOsQdVy
>>762
電子書籍て何で呼んでます? iPadとか?
0780名前は開発中のものです。2012/01/19(木) 19:31:46.03ID:6FLu4Qkn
パーティクルいじるとすぐ止まるなー。パワー不足ではないようだが。
0781名前は開発中のものです。2012/01/19(木) 20:24:50.72ID:9aFQ835Y
cameraに映っているGameObjectを一括で取得する方法はありますか?
0782名前は開発中のものです。2012/01/19(木) 23:50:47.79ID:Fi1kI6rw
UnityのGrassってゴミじゃね?
岩とか地面とかはテクスチャでリアル感だせるけど、どうして草だけチンゲみたいなんだ?

不自然極まりないわ
まだ、全部Bushとかで埋めた方がましだわな
0783名前は開発中のものです。2012/01/20(金) 00:04:52.91ID:NAJB7xFq
デフォで入ってるgrassはゴミもいいとこだね
仕組み自体は他のPCゲーと同じなので自前で用意すれば大分良くなる
0784名前は開発中のものです。2012/01/20(金) 00:09:58.17ID:ut7Nriyc
>>759
もうしわけありません
使い方がわからないのですが
Transformクラスはtransformクラスとは違うものなのでしょうか?

イメージでは

GameObject tmobj = (GameObject)GameObject.Instantiate(tamaOri);

GameObject tmani = tmobj.Transform.getChild("tama").child.getObject;
tmani.animation.Play("rot");

こんな感じでいけると思ったのですが・・・
0785名前は開発中のものです。2012/01/20(金) 00:26:57.77ID:ut7Nriyc
あ、こんな感じでいけました

GameObject tmobj = (GameObject)GameObject.Instantiate(tamaOri);

GameObject tmani = tmobj.transform.FindChild("tamapos/tama").gameObject;

tmani.animation.Play("rot");

FindChildってやっても全部を拾ってくれるわけじゃなくて
階層が複数あるときはちゃんと記述しないとダメということでした

ありがとうございました
0786名前は開発中のものです。2012/01/20(金) 00:34:48.79ID:7bXmoleY
>>784
>Transformクラスはtransformクラスとは違うものなのでしょうか?
Transform はクラスだけど、GameObjectの transform は、クラスじゃなくてメンバ
なので、>>759 にある通り、

GameObject obj; // と、した場合、
for(int i=0; i<obj.transform.getChildCount(); ++i) {
 Transform tr = obj.transform.getChild(i); // これで、Transform クラスのインスタンスが戻るから、
 GameObject 子のゲームオブジェクト = tr.gameObject;
}
って事。 イテレータブルなようなので >>759 にある通り、勿論 foreach で取得した方がスマートだが



0787名前は開発中のものです。2012/01/20(金) 00:35:17.50ID:7bXmoleY
リロってなかった orz
0788名前は開発中のものです。2012/01/20(金) 01:59:31.73ID:n0jxG2+w
関数の利用

それは、大量の汚いコード一行に簡易化し、複雑な処理させているという事実を
隠蔽しようとするための、自己嫌悪の緩和を目的とした悲しき手法にすぎなかった
0789名前は開発中のものです。2012/01/20(金) 02:22:50.22ID:rJVnXUra
大手のゲームは手間かかってるなあ。
個人ではちょっと無理がある。
0790名前は開発中のものです。2012/01/20(金) 02:25:25.13ID:7bXmoleY
>>788
おい
0791名前は開発中のものです。2012/01/20(金) 02:41:05.47ID:Mxs7pFNj
>>788
あるあるw
一度しか使わないような変数や関数までやれクラスだのゲッターセッターだのついつい作ってしまうw
0792名前は開発中のものです。2012/01/20(金) 02:57:29.41ID:rJVnXUra
やる事が多すぎる。
全部やってたら十年かかる。
0793名前は開発中のものです。2012/01/20(金) 07:54:40.73ID:zb5MO8he
iOS 向けに作成したアプリを実機に転送してテストプレイして見たら、
一度描画したモノが残り続けてしまい、消えないモーションブラーみたいになってしなうのですが、
何かしらの設定が必要でしょうか?
別のシーンをロードしても、前のシーンで描画したラベルとかでさえ残ってしまいます…

0794名前は開発中のものです。2012/01/20(金) 09:25:32.49ID:7WHauiix
>>789
俺は超大作を考えなければ1人でフリーソフトだけ使って作れそうと思った
というかまじで作るわ。今どういうゲームにするか考え中
0795名前は開発中のものです。2012/01/20(金) 09:36:58.06ID:La3ZnR8G
考えるだけなら誰にでもできる
0796名前は開発中のものです。2012/01/20(金) 10:39:59.86ID:Z2eddOft
3Dキャラ移動システムをつくり、現在更にカメラ視点変更を入れようと思うのですが
カメラを回したとき、キー操作もカメラの向きに合わせる方法がわかりません

function Update () {
var controller : CharacterController = GetComponent(CharacterController);


if(Input.GetKey(KeyCode.Z)) {
this.animation.CrossFade("attack", 0.1);
}

if(controller.isGrounded && !this.animation.IsPlaying("attack")) {
velocity = Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
velocity *= walkSpeed;
if(velocity.magnitude > 0.5) {
transform.LookAt(transform.position + velocity);
this.animation.CrossFade("run",0.1);
}
else {
this.animation.CrossFade("idle",0.1);
}
}

velocity.y -= gravity * Time.deltaTime;
controller.Move(velocity * Time.deltaTime);
}

どの様にすれば、プレイヤーキャラの移動方向を
カメラに合わせられるでしょうか?
0797名前は開発中のものです。2012/01/20(金) 11:18:55.87ID:7WHauiix
根本的にまずい方法で実装しようとしている(不可能ではないが)
カメラはプレイヤーの子オブジェクトして置く。これで何もしなくても常にプレイヤーとカメラが同じ方向を向く。
素直な実装ではキャラクターはローカル座標で常に+Z方向を向いている。
ワールド座標系での移動方向はtransofrm.TransformDirection(Vector.forward)
標準アセットのCharactoer Controllerに「First Person Controller」と「3rd Person Contoller」があるので
それをインポートして触ってみたほうがいい。そういう実装をしようとしているという事は事前の調査が足りてない。
あとUnity Example Projectにキャラクターが動くだけのプロジェクとがあるから見ておいたほうがいい。
解説なしだけど見ればだいたいわかる。
http://unity3d.com/support/resources/example-projects/



0798名前は開発中のものです。2012/01/20(金) 11:54:54.68ID:x8z+SDZo
>>792
自分にどこまでの技術と知識の経験があって、
どこを目指してるか、
の2点の位置によって、かかる時間の距離は違うのよ
0799名前は開発中のものです。2012/01/20(金) 12:18:14.07ID:oFdqnee1
>>794
考える前に試しにピンボールゲーム作って冠接させるといいぞ
見えてくるものがある
08007972012/01/20(金) 12:48:34.18ID:Z2eddOft
>>798
返答どうもありがとうございます
試しにスクリプト乗っけなおしてみたら、少し想定とは違っていたものの
むしろこっちの方がよさげな動きをしました
元が、黄ウニ本の見下ろし視点だったのがまずかったか……
入門としてはいい本だったのですが

ただ、このままだとスクリプトの中身把握しきってないので
新しく見つけた白ウニ本見ながら、再度勉強しなおしてみます
どうもありがとうございました
0801名前は開発中のものです。2012/01/20(金) 16:37:00.85ID:rJVnXUra
もっと普通にテクスチャアニメーションできないのコレ?
08028002012/01/20(金) 16:44:00.75ID:Z2eddOft
すいません、名前と安価の数値間違えてました
正しくは名前796、安価797氏でした、もうしわけありません
0803名前は開発中のものです。2012/01/20(金) 17:06:29.50ID:WZOjJ9x4
>>801
普通ってなんだよ
普通テクスチャアニメーションて、自分でDirectXやOpenGL使って実装するときは、Indexedな頂点バッファをアサインなどしたあと、
割り当てるTextureを自分で切り替えるか、シフトしてdrawって流れになるから、
その辺隠蔽してる Unityみたいなシステムは、そこにあるものが全てだぞ。その意味で、統一された簡単な仕様なんてない
0804名前は開発中のものです。2012/01/20(金) 17:13:23.00ID:rJVnXUra
>>803
マテリアルの項目にTilingやOffsetがあるんだから、そのそばにTransformをつけてキー打てるようにしてくれればだいぶ違う。
それすらパーティクルやスクリプト経由ってめんどくさすぎだろ。直して欲しいわ。
0805名前は開発中のものです。2012/01/20(金) 17:55:18.74ID:n0jxG2+w
なんか、配列クラスが継承できないんだが・・・
普通のメンバ変数とか、メンバ関数は継承できてるのに

var array = skill[]; (skill[]っていうのは自作クラス)

継承したクラスでこの関数使うと、使えない
エラーが出る。(array index out of rangeとか、object reference not set)

こういう仕様なのか?
0806名前は開発中のものです。2012/01/20(金) 18:00:26.02ID:3gtCRxbs
>>804
まぁやってほしいわな

シェーダーに手を出すと、機種チェックしなきゃいけない範囲が広がるような予感
Unity使う意味が無くなって来る
0807名前は開発中のものです。2012/01/20(金) 18:24:43.84ID:WZOjJ9x4
>>804
まぁ、正直気持ちはわかる
0808名前は開発中のものです。2012/01/20(金) 19:33:12.96ID:rJVnXUra
>>806-807
だろ?
んで仕方なく自分で実装したらバージョンアップで標準機能になったりするんだよ。
いつもそうだ。
0809名前は開発中のものです。2012/01/20(金) 19:48:25.07ID:WZOjJ9x4
>>808
作ってる側も、完璧にニーズ把握なんてしきれないから、
要望やアイデアとして投げといてもいいかもよ

わざわざ身銭タダ投げで無償版提供してるのは、シェア獲得もあるけど、
同時に広範な情報集約の意味もあるから
0810名前は開発中のものです。2012/01/20(金) 20:22:08.56ID:rJVnXUra
>>806-807
>>809
というわけで投票よろしく。

http://feedback.unity3d.com/forums/15792-unity/suggestions/2529600-simple-uv-texture-animation-pipline
0811名前は開発中のものです。2012/01/20(金) 21:07:53.54ID:oGsDCA4F
なんか3.5にしてからUnity3d立ち上げようとすると
Failed to create master Direct3D windowとかいうエラーメッセージ出るんだけど
俺だけかな?
0812名前は開発中のものです。2012/01/20(金) 21:12:09.10ID:7WHauiix
おいUnityって.blendファイルを直接インポートできるじゃないか!!
http://forum.unity3d.com/threads/40908-FAQ-Getting-skinned-animated-models-from-Blender-to-Unity3D

ただし最新2.61を使うにはUnity-BlenderToFBX.pyの更新が必要。
http://forum.unity3d.com/threads/62583-Blender-2.5-support?p=647776&viewfull=1#post647776

人間がやる代わりに自動でBlenderを呼び出してFBXで出力してインポートしているらしい。
全部自動でやってくれるから間違えようがないし手間暇かからず。

※ 超重要なFAQ: テクスチャーがインポートされないのは仕様です。別途手動で

こんな便利な機能があるなら早く教えてくれよ。今までの苦労は何だったんだ。
とりあえず1モデル、歩行モーションだけだけど問題なくインポートできた。



0813名前は開発中のものです。2012/01/20(金) 21:15:32.95ID:NAJB7xFq
でもblenderからFBX吐いてインポートしても特に問題なかったのであまり恩恵が…
0814名前は開発中のものです。2012/01/20(金) 21:42:37.53ID:84PxNeiD
>>812

できるけどどちらかにエラーがあってちゃんと認識してくれないんだよね。
例えばBlenderでPlaneからデバイドして立体を構築した場合に仮に凹凸の凸を
造ったとして凸部分の横が空洞として認識されて空表示っていうの?
空の空間として表示されてしまう。
0815名前は開発中のものです。2012/01/20(金) 21:45:58.36ID:iY0xkqPt
>>811
DirectXのバージョンとか情報を
08168122012/01/20(金) 22:10:34.31ID:7WHauiix
>>812
テクスチャーがインポートされない問題は.blendをインポートする前に
予め画像を全てUnityのAssetsフォルダー直下にコピーしておけばいいようだ。
リンクが付けばあとは自由に移動できる。

こういうTIPSは集めてテンプレ化しようぜ
同じ苦労をみんなでする事はない
BlenderとかSketchUpとの連携は需要が大きいだろ
900超えたら作り出すので突っ込みよろしく


0817名前は開発中のものです。2012/01/20(金) 22:39:57.78ID:rJVnXUra
UVテクスチャのアニメーションをするスクリプトをコピったんで誰かテストしてくれ。俺は他のスクリプトが壊れてて動かせない。

using UnityEngine;
using System.Collections;

public class UVAnimationScript: MonoBehaviour {
public float scrollSpeed = 0.5F;
void Awake ()
{
float offset = Time.time * scrollSpeed;
}
void Update ()
{
renderer.material.SetTextureOffset("_MainTex", new Vector2(offset, 0));
}
}
0818名前は開発中のものです。2012/01/20(金) 22:47:50.80ID:rJVnXUra
>>817はダメ。

こっち。unity公式の奴ね。自分でいじって失敗したわ。恥ずかしい。

using UnityEngine;
using System.Collections;

public class UVAnimationScript : MonoBehaviour {
public float scrollSpeed = 0.5F;
void Update() {
float offset = Time.time * scrollSpeed;
renderer.material.SetTextureOffset("_MainTex", new Vector2(offset, 0));
}
}
0819名前は開発中のものです。2012/01/20(金) 22:49:07.77ID:xXXiGWRJ
Awakeでしかoffset更新しなかったらアニメーションしなくね?
0820名前は開発中のものです。2012/01/20(金) 22:50:45.06ID:xXXiGWRJ
リロードしてなかった。
これならいいか。
0821名前は開発中のものです。2012/01/20(金) 23:12:05.33ID:XVFQz8/7
初歩的な質問なんですが、、、
UnityJSで多重配列の宣言時に初期値を突っ込むことはできないんですか?
普通のJSでいう

var arr2 = [
[0,1],
[0,1]
];

みたいな感じです。
C#ならできるっぽいですが。

あと、ついでにJSでいう
this['prop' + num.toString()];
みたいなブランケットでのプロパティへのアクセスもできないんでしょうか?
0822名前は開発中のものです。2012/01/21(土) 02:33:54.21ID:v7qPTHlI
すげぇいい流れ
良スレだな
0823名前は開発中のものです。2012/01/21(土) 03:42:23.54ID:cY5IxD2D
いや、待て
俺の質問がスルーされていることを忘れるな

>>805
詰まってから既に2日経っている
0824名前は開発中のものです。2012/01/21(土) 05:21:50.93ID:xEqgxHdv
>>823
宣言と代入がごっちゃになってない?
var array : ClassName [];
これで arrayってなまえのClassNameクラスの配列が宣言できる
0825名前は開発中のものです。2012/01/21(土) 05:25:57.29ID:xEqgxHdv
ちなみに盤面をタイルの集合でチェスボードみたいなものを作る時の宣言は
var board : SomeClassName [ , ];
board = new SomeClass[YSIZE,XSIZE];
board [0,0] = new SomeClass(arg1,arg2);

みたいに[,] で二次元配列を宣言できる
0826名前は開発中のものです。2012/01/21(土) 06:30:41.85ID:cY5IxD2D
>>824
なってないはずなんだ

protected var SkillArray: YourSkill[];

function Awake() {
//配列生成
SkillArray = new YourSkill[4];
//クラス生成
for(var n=0; n<4; n++){
SkillArray[n] = new YourSkill();
}
}

で、このあとSkillArrayに色々代入して使ってるんだが、これが記述してあるクラスの子クラスで
このSkillArrayが使えない。このクラスからは使える
YourSkillクラスでは、構造体として使いたいから、System.ValueTypeを継承してる

>>825豆知識ありがとう
0827名前は開発中のものです。2012/01/21(土) 09:18:28.33ID:oEX8V+2r
>>826
あぁやっと >>805 で何を言いたかったのか伝わったwww
なんでスルーされてたかと言うと、多分 >>805 での用語の使い方が曖昧で、意味が伝わってなかったと思われ。

つまり、『親クラスのインスタンスメンバである、とある配列形式の変数が、
 protect スコープに置いてるのに、継承先の子クラスから利用できない』、って事な

>>805 の書き様だと、まるで 「配列宣言まで含めて、クラスとして継承しようとしてる」 とか
「配列メンバを関数と呼んでいる」 ように見えて、????????となってしまう。

0828名前は開発中のものです。2012/01/21(土) 09:47:05.58ID:D92gWFDe
面白そうなので自分で試してみたら同じ症状だった
publicにしてEditorで見るとBaseClassにもDerivedClassにもSkillArrayが見えて
両者に別々の値を設定できる(リンクしない)
もともとUnityはスクリプトよりEditorの値を優先するのが仕様なので
内部的に別々の変数として確保・管理されているっぽい
つまりBaseClassで見るそれとDerivedClassで見るそれは別物。
プログラマー的に許せない仕様だが、そもそもJavaScriptで継承を使うのは想定外だと思われ(できるけど)。
結論としては多分無理なんじゃね?

※ で、これC#だと大丈夫なの? これだけでJavaScriptを使わない理由としては十分だ



0829名前は開発中のものです。2012/01/21(土) 10:20:33.86ID:oEX8V+2r
>>828
面白そうな話題なので、ちょっと違うが俺も乗っかると、
基本的に 「同名のメンバ "変数" を、Base と Derived の両方で宣言した場合」
キャストされているその時の型側のメンバが使われる ※メソッド関数でなくて、あくまで変数の話

C++での例 → http://codepad.org/xJPpGhDy ※ただし他言語でも考え方は同じ

「Base 側だけで宣言されていて、Derived で宣言しない」 、かつそれがスコープ保証されてるならば、
普通は Derived から見える… ってのが、クラス継承を扱う多くの言語(C++、C#、Java、etc…)
での普通の感覚だけど、 それ以前に、コンパイラが
「同じ名前で改めてメンバ "変数" を宣言しちゃうと、親側の同名変数が隠されちゃうよ」 と、警告してくるものもあった気がする

継承元と、継承先で、同じメンバ変数を見たかったら、子側では宣言しない… って、そういう話じゃないか
08308282012/01/21(土) 10:25:26.62ID:D92gWFDe
C#でも同じ症状でした。
いろいろ試すとUnityではスクリプトをアタッチしてInspectorで見える状態にすると変数が(変な表現だが)インスタンス化されるようです。
つまりBaseClassとDerivedClassの両方をアタッチすると「同じ名前の別変数」になる。
これはInspectorで両者に別々の値を設定できることから明らか。
もう1つ注意点は派生クラスより基底クラスのAwake()が先に呼ばれるとは限らないこと。

0831日系アメリカ人2012/01/21(土) 10:29:46.06ID:Y+drtEw6
日本語本だすな わかったか?
そうすればこいつら一生わからないまま

こいつらの生命線は  ”和訳されたUnity本”
0832名前は開発中のものです。2012/01/21(土) 10:30:57.60ID:oEX8V+2r
>>829 の続き

C#での例 → http://ideone.com/rXW1r

同じ
0833名前は開発中のものです。2012/01/21(土) 10:31:51.27ID:D92gWFDe
>>829
いや、そういう話ではないです。問題はもっと根深い
一言で言うと「基底クラスをアタッチするとそのメンバー変数は派生クラスのメンバー変数とは同じ名前の別物になる」
何という極悪トラップ。こんなの気を付けてどうにかなる問題じゃねー
0834名前は開発中のものです。2012/01/21(土) 10:34:20.29ID:oEX8V+2r
>>830
>いろいろ試すとUnityではスクリプトをアタッチしてInspectorで見える状態にすると変数が(変な表現だが)インスタンス化されるようです。
>つまりBaseClassとDerivedClassの両方をアタッチすると「同じ名前の別変数」になる。

多分間違いないと思うけど、一応確認させてくれ。
それは、「Base側でだけ宣言している メンバ"変数" = Derived では同名で隠蔽していない変数」 なのに、
まるで メンバがインスタンス化されたように、別物になってしまう、って事だよな?

…mmm Unityが中で何かしてるのかも。 恐ろしい話だ
0835名前は開発中のものです。2012/01/21(土) 10:34:32.65ID:zrCqDX6Y
C#だと普通に親クラスのprotected使えるけど?
0836名前は開発中のものです。2012/01/21(土) 10:35:17.13ID:oEX8V+2r
リロって無かった。

>>833
了解。つまり、>>834 って事か。 極悪過ぎる

0837日系アメリカ人2012/01/21(土) 10:37:21.34ID:Y+drtEw6
日本語本だすな わかったか?
そうすればこいつら一生わからないまま

こいつらの生命線は  ”和訳されたUnity本”
日本語本だすな わかったか?
そうすればこいつら一生わからないまま

こいつらの生命線は  ”和訳されたUnity本”
日本語本だすな わかったか?
そうすればこいつら一生わからないまま

こいつらの生命線は  ”和訳されたUnity本”
日本語本だすな わかったか?
そうすればこいつら一生わからないまま

こいつらの生命線は  ”和訳されたUnity本”
0838名前は開発中のものです。2012/01/21(土) 10:37:36.04ID:oEX8V+2r
>>835
普通使えるもんだと思うけど、同値参照出来てる? 分離してない? って話
…って、今俺Unity触れない環境なので、Unityではどうなるか、は試せないのでアレだが…
0839日系アメリカ人2012/01/21(土) 10:38:21.00ID:Y+drtEw6
こいつらが英語のUnityドキュメントやゲーム開発情報がわからず
苦しみMacのXcodeと睨めっこする姿を想像するとおもしろい
こいつらが英語のUnityドキュメントやゲーム開発情報がわからず
苦しみMacのXcodeと睨めっこする姿を想像するとおもしろい
こいつらが英語のUnityドキュメントやゲーム開発情報がわからず
苦しみMacのXcodeと睨めっこする姿を想像するとおもしろい
こいつらが英語のUnityドキュメントやゲーム開発情報がわからず
苦しみMacのXcodeと睨めっこする姿を想像するとおもしろい

0840名前は開発中のものです。2012/01/21(土) 10:39:58.53ID:Ry35Axfo
仕様ではあるがバグの範疇だろこれ
全くメリットないし
フォーラムか、或いはfacebookあたりで文句言うと良さそう
0841日系アメリカ人2012/01/21(土) 10:40:05.29ID:Y+drtEw6
そしてクソゲーを作ってAppstoreで100円以下で売る無様さ シュシュ!
面白いですねw強烈っすねw シュシュシュ! 金で売るのに無料のオンラインゲームに負けるなんて ハイハイハイ!!
シュシュシュ!!パネーッス!? マジパネーッス!! シュシュシュ!
そしてクソゲーを作ってAppstoreで100円以下で売る無様さ シュシュ!
面白いですねw強烈っすねw シュシュシュ! 金で売るのに無料のオンラインゲームに負けるなんて ハイハイハイ!!
シュシュシュ!!パネーッス!? マジパネーッス!! シュシュシュ!
そしてクソゲーを作ってAppstoreで100円以下で売る無様さ シュシュ!
面白いですねw強烈っすねw シュシュシュ! 金で売るのに無料のオンラインゲームに負けるなんて ハイハイハイ!!
シュシュシュ!!パネーッス!? マジパネーッス!! シュシュシュ!
0842名前は開発中のものです。2012/01/21(土) 10:41:52.84ID:D92gWFDe
そういう事(ただし俺が調べた限り)。
Baseクラスでしか宣言してないメンバー変数(Derivedでは宣言してない)が普通にDerivedから使えていたのに、
Baseクラスのスクリプトをアタッチするするとあら不思議、Baseの変数とDerivedの変数は同名だが別の存在になる。
(Inspectorで両者に別々の値を設定できる事からも明らか)
Unityのまずい仕様だね。これは何とかして欲しいわ。
こういう地雷は他人が踏んでくれると助かる(オイオイ





0843名前は開発中のものです。2012/01/21(土) 10:43:23.04ID:zrCqDX6Y
>>838
仕事で自前のWindowクラス作った時に開いたり閉じたりするアニメーションの動きを親クラスでprotected Rect rectWindowで持ってて、子クラスでrectWindow使って描画したりしたけど特に問題なかったよ。
もしかしてpublicにしてInspectorで値いじったら分離するかも試練。
0844日系アメリカ人2012/01/21(土) 10:43:41.55ID:Y+drtEw6
59 :デフォルトの名無しさん:2012/01/21(土) 01:05:01.17
モジュール探すのは時間がかかるし解説サイトが英語ばかりだから
ちょっとしたものは自分で作る方が早いよ
なんでもかんでもモジュールに頼るとプログラミング力が養われない

お前らこういうバカとそっくり
本当にクズだね
車輪の再発明

ゲームの再発明 凄いちょこっとしかかわらないクソっぷり
その劣化版
0845名前は開発中のものです。2012/01/21(土) 10:44:23.71ID:D92gWFDe
正確に誤解のないように書くとこうか
Baseクラスのスクリプトをアタッチするするとあら不思議、Baseの変数とDerivedの(Base由来の)変数は同名だが別の存在になる。
0846名前は開発中のものです。2012/01/21(土) 10:46:36.26ID:zrCqDX6Y
>>845
それは2つ別々のスクリプトをアタッチしているからなるんじゃね?
0847名前は開発中のものです。2012/01/21(土) 10:46:43.31ID:oEX8V+2r
>>840
言語仕様を壊された状態だから、やっぱバグ… あるいはそういう仕様です… かなぁ
いずれにしても、確かにこれは予期せぬ地雷だ。 てか、もしかして




 他にもこんな地雷、あるのかな?wwwwwwww
0848名前は開発中のものです。2012/01/21(土) 10:46:57.93ID:D92gWFDe
publicにしてInspectorで値をいじれるようにアタッチすると分離する。
アタッチしなければ大丈夫(自分で試してみた)。
同じGameObjectにアタッチしなければ大丈夫そうだが????
そこまで調べ切れない。
0849名前は開発中のものです。2012/01/21(土) 10:58:43.96ID:oEX8V+2r
そういえば、Inspector って結局、リフレクション使って中間言語バイナリから各メンバ拾ってきてる訳で、
その際に… 別物として見ているとか。 てか、それだけだと、外の世界では別々でも、実際は一つだから分離なんてしない。

と言う事は、やっぱ Unityが持ってるコンパイラがアタッチの対象と判断した段階で、
自前再コンパイルでもする時に分離させちゃう、って事なんだろうか。 中で何やってるのか気になる。
オプソだったらソース追えるが、こういう時プロプライエタリは報告する以外手が無いのがはがゆい
08508282012/01/21(土) 11:17:41.58ID:D92gWFDe
もりあがっているところ申し訳ないですが>>828->>849は全て私の勘違いでした。
非常に申し訳ないです。ゴメンナサイ。そんな事実はありません。
単にAwake()の呼ばれる順番が派生クラス-->基底クラスというだけの問題でした。
たぶん>>826さんも単なる呼ばれる順番のミスだと思います。
お騒がせして大変申し訳ないです。
0851名前は開発中のものです。2012/01/21(土) 11:19:30.69ID:D92gWFDe
ちょっとAA貼っておきますね
    ∧∧
   ヽ(・ω・)/ ズコー
  \(\ ノ
0852名前は開発中のものです。2012/01/21(土) 11:35:49.43ID:VaSTTUV4
基底クラスのAwake()が呼ばれてないに100ペリカ
ちゃんと派生クラスからsuper.Awake()で呼び出してるか?
自動では呼ばれないぞ
0853名前は開発中のものです。2012/01/21(土) 14:26:18.17ID:dJet3waU
シェーダーってどんな風に設計するものなの?
0854名前は開発中のものです。2012/01/21(土) 15:00:32.96ID:SwdTUVsT
谷に新しい風の和子が生まれるのか
0855名前は開発中のものです。2012/01/21(土) 15:28:14.58ID:0EF7Beit
谷亮子がかわいいだと・・・?
0856名前は開発中のものです。2012/01/21(土) 16:08:26.77ID:Gq4+ycWH
3.5のパブリックβってユニトロンついてないんですか?
やっぱりみなさんエディタはモノデベ?
0857名前は開発中のものです。2012/01/21(土) 16:10:59.39ID:xEqgxHdv
emacs
0858名前は開発中のものです。2012/01/21(土) 16:17:34.96ID:LnxfoHPt
rigidbody.AddExplosionForceの爆発に巻き込まれたものを検出することってできますか?
OnExplosionEnterみたいな感じで取れたら尚いいです。
0859名前は開発中のものです。2012/01/21(土) 16:30:19.73ID:O3swqihO
>>858
爆発の位置に球状のコライダ置いて時間で拡大させればよくない?
飛ばす剛体入りの破片に判定付けたいならそっちにコライダ付ければいいだろうし。
■ このスレッドは過去ログ倉庫に格納されています