質問編集履歴

3

問題を修正した

2020/03/06 12:36

投稿

kirito_
kirito_

スコア5

test CHANGED
@@ -1 +1 @@
1
- Unityにおいて、自前のF#で作っdllファイルからエディタのAssetsのPrefabを呼び出す<修正>
1
+ F#でクラスのダウンキャストがし
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- Unityにおいて、自前のF#で作っdllファイルからエディタのAssetsのPrefabを呼び出す
5
+ F#において、ダウンキャストをし
6
6
 
7
7
 
8
8
 
@@ -10,9 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- dllファイルにおいてResources.Loadを使いたいものの,
14
-
15
- Box化をしても実行時エる.
13
+ スのダウンキャスト失敗する.
16
14
 
17
15
  ### 該当のソースコード
18
16
 
@@ -42,7 +40,7 @@
42
40
 
43
41
  Debug.Log("piyopiiyo")
44
42
 
45
- let board = unbox<BoardController> <| box oldboard //ここでSystem.InvalidCastException
43
+ let board = unbox<BoardController> <| box oldboard //ここでSystem.InvalidCastException
46
44
 
47
45
  Debug.Log("hogehoeg")
48
46
 

2

エラー時の追加

2020/03/06 12:36

投稿

kirito_
kirito_

スコア5

test CHANGED
File without changes
test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
  Debug.Log("piyopiiyo")
44
44
 
45
- let board = unbox<BoardController> <| box oldboard
45
+ let board = unbox<BoardController> <| box oldboard //ここでSystem.InvalidCastException
46
46
 
47
47
  Debug.Log("hogehoeg")
48
48
 

1

問題点がLoadできないことでなくbox化したのが実行時にエラーしていたことであった

2020/03/06 12:27

投稿

kirito_
kirito_

スコア5

test CHANGED
@@ -1 +1 @@
1
- Unityにおいて、自前のF#で作ったdllファイルからエディタのAssetsのPrefabを呼び出す
1
+ Unityにおいて、自前のF#で作ったdllファイルからエディタのAssetsのPrefabを呼び出す<修正>
test CHANGED
@@ -12,9 +12,7 @@
12
12
 
13
13
  dllファイルにおいてResources.Loadを使いたいものの,
14
14
 
15
- 下記のソースコードコンパイルので、prefabが呼び出され.
15
+ Box化をし実行時エラーに.
16
-
17
-
18
16
 
19
17
  ### 該当のソースコード
20
18
 
@@ -29,6 +27,60 @@
29
27
  | null -> Resources.Load("Prefabs/" + name) :?> GameObject
30
28
 
31
29
  | _ -> prefab
30
+
31
+ ```
32
+
33
+
34
+
35
+ ```F#
36
+
37
+ let addBoardController =
38
+
39
+ Debug.Log("piyo")
40
+
41
+ let oldboard = GetPrefab(null, "BoardController")
42
+
43
+ Debug.Log("piyopiiyo")
44
+
45
+ let board = unbox<BoardController> <| box oldboard
46
+
47
+ Debug.Log("hogehoeg")
48
+
49
+ board.Turn <- TurnCount.deploy
50
+
51
+ board.Deploy <- DeployCount.none
52
+
53
+ board
54
+
55
+ ```
56
+
57
+
58
+
59
+ ```F#
60
+
61
+ type BoardController() =
62
+
63
+ inherit Token()
64
+
65
+ let mutable turn = TurnCount.deploy
66
+
67
+ let mutable deploy = DeployCount.none
68
+
69
+
70
+
71
+ member this.Turn
72
+
73
+ with get (): TurnCount = turn
74
+
75
+ and set (v) = turn <- v
76
+
77
+
78
+
79
+ member this.Deploy
80
+
81
+ with get (): DeployCount = deploy
82
+
83
+ and set (v) = deploy <- v
32
84
 
33
85
  ```
34
86