31
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Unity】Unity-Chan!(ユニティちゃん)でCS0234エラーが発生したときの調査結果と解決方法

Last updated at Posted at 2019-05-22

開発環境

  • Windows 10
  • Unity 2018.3.1f1

事象

Asset Storeから、下記の「Unity-Chan! Model」をすべてImportしました。
image.png
「Assets」→「unity-chan!」→「Unity-chan! Model」→「Prefabs」の「unitychan.prefab」を配置したとき、下記のエラーが発生しました。
image.png

Assets\unity-chan!\Unity-chan! Model\Scripts\AutoBlink.cs(8,23): error CS0234: The type or namespace name 'Policy' does not exist in the namespace 'System.Security' (are you missing an assembly reference?)

該当するソースコードを確認すると、
image.png

型または名前空間の名前 'Policy' が名前空間 'System.Security' に存在しません (アセンブリ参照があることを確認してください)。 (CS0234) 

メッセージの通りですが、System.SecurityにPolicyが存在しないため、エラーになっています。

解決方法

多くの場合、System.Security.Policyのクラスを利用していないため、using節からSystem.Security.Policyを削除することで対処できるとのこと。

実際に消してみると、エラーはなくなりました。
image.png
image.png

調査してみた&解決方法その2

Unity公式?キャラクターのアセットがエラーしているのは、自分の設定などの問題では?というモヤモヤが消えなかったので、頑張って調べてみました。

とりあえず、Import漏れ、欠落などを疑いましたがそんなことはなさそうでした。
(そもそもスクリプトの問題の時点で、関係なさそうですが…)

「C# System.Security」でググったところ、MS公式のドキュメントが出てきました。
System.Security Namespace
ここで、そもそもUnityで.NETのバージョンを意識したことがないことに気が付きました。

「Edit」→「Project Settings」→「Player」の
Other Settings、ConfigurationsのApi Compatibillity Levelが.NET Standard 2.0になっていました。
image.png
これを.NET 4.xに変更しました。

これでも、エラーが出なくなりました。

おわりに

自分が調査して見つけた解決方法が正しいのか分かりません。
解決方法が間違っていたら、教えてください…

2019年5月25日追記

@KTA552 さんに、コメントにて教えていただきました。

System.Security.Policyは消しちゃって大丈夫

Unity Japan公式に問い合わせたところ、使っていないので消しちゃって大丈夫との返事をもらったそうです。
そのため、本記事の最初に記載しましたコメントアウト or 削除が最適解ということです。

ユニティちゃんトゥーンシェーダー Ver.2.X.Xを使用する

また、もう一つ回避方法があるそうです。
それは、ユニティちゃんトゥーンシェーダー Ver.2.X.X リポジトリの配下になる AutoBlink.cs を適用することです。

方法は簡単で、unity3d-jp/UnityChanToonShaderVer2_Project をダウンロード(もちろんgit cloneしてもOK)して、置き換えるだけです。
差分は、using System.Security.Policy の有無のみです。

ユニティちゃんトゥーンシェーダー Ver.2.X.Xのリポジトリのほうが新しいそうなので、こちらで置き換えてしまうのも手だそうです。

参考文献

Unityちゃんのインポート
"error CS0234: The type or namespace name 'Policy' does not exist in the namespace 'System.Security'" エラーが発生する (Unityプログラミング)

31
13
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?