昼夜を再現する為にスクリプトを使いDirectionalLightを動かすと下記にあるGIFの様に影がびくびくします。屋根のせいで出来てる影が一番わかりやすいかも
自分ではなぜこうなるのか分からないので回答をもらえると有難いです。
※GIFだけでは分かりづらいかもしれませんのでこのゲームが置いてあるサイトをすぐ下に載せておきます
載せたゲーム
レンダリングエンジンはURPです。
影はベイクしておらず、すべてリアルタイムです
DirectionalLightのLightコンポーネントの設定
DirectionalLightを動かしているスクリプト
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class taiyou : MonoBehaviour 6{ 7 public Light light; 8 public float Light_intensity = 1; 9 10 [Header("個々からrotation変えろ")] 11 public Vector3 kokokara_rotation_kaero; 12 // Start is called before the first frame update 13 void Start() 14 { 15 16 } 17 18 // Update is called once per frame 19 void FixedUpdate() 20 { 21 kokokara_rotation_kaero.x += 0.007f; 22 if(kokokara_rotation_kaero.x > 360) 23 { 24 25 kokokara_rotation_kaero.x = kokokara_rotation_kaero.x - 360 * (Mathf.Floor(kokokara_rotation_kaero.x / 360)); 26 } 27 28 29 transform.rotation = Quaternion.Euler(kokokara_rotation_kaero); 30 if (kokokara_rotation_kaero.x > 180 && kokokara_rotation_kaero.x < 360) 31 { 32 light.intensity = Light_intensity; 33 light.intensity -= (kokokara_rotation_kaero.x - 180f) / 18 * Light_intensity; 34 } 35 if (kokokara_rotation_kaero.x > 0 && kokokara_rotation_kaero.x < 180) 36 { 37 light.intensity = 0; 38 light.intensity += kokokara_rotation_kaero.x / 18 * Light_intensity; 39 if (light.intensity > Light_intensity) 40 { 41 light.intensity = Light_intensity; 42 } 43 44 } 45 46 } 47 public void Rotate(float a) 48 { 49 50 kokokara_rotation_kaero.x += a; 51 } 52} 53
試したこと
①プラットフォームをPC,Mac&Linux Standaloneっていう奴に変えましたが変わらなかったです
②gameObjectのInspectorにあるstaticにチェックついているの関係なく影がびくびくしていました
③DirectionalLightを動かしているtaiyouスクリプトのチェックを外すと影のびくびくが収まりました
④FixedUpdata内でDirectionalLight動かしているからなっているのかと思いUpdata内で動かしましたが変わりませんでした
開発環境設定
プラットフォームはWebGLです
レンダリングエンジンはURPです
unityのバージョンは2020.3.12f1です
あなたの回答
tips
プレビュー