香港新手遊戲開發者論壇

 找回密碼
 立即註冊
查看: 1442|回復: 0

[原創][無需插件] 簡單自製日夜系統

[複製鏈接]

63

主題

67

帖子

83 小時

在線時間

管理員

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

積分
453
發表於 2016-10-10 23:20:01 | 顯示全部樓層 |閱讀模式

馬上註冊,結交更多好友,享用更多功能,讓你輕鬆玩轉社區。

您需要 登錄 才可以下載或查看,沒有帳號?立即註冊

x
簡單的日夜系統無需插件,簡單的一段code, 並使用Unity預設的skybox, 即可以達成


效果:

00:32可以看見太陽日出

首先生成一個空object, 並把光源object放進去, 把Parent object X90度放置.
這樣的設置是因為我們用比較容易學習的Euler角, 且用比較好控制的Y軸旋轉, 但直接的Y軸旋轉做不到日夜效果, 所以我們先做個跳板, 用Parent object調整角度, 再在Child object做Y軸旋轉, 外面看起來就好像Z軸或X軸旋轉了


再把光源object的transform重置, 並把寫好的Y軸旋轉Script放進去(下面有源始碼), 設定日夜變化速度


之後我再放入地板和立方體以展示效果, 完成~!




  1. using UnityEngine;
  2. using System.Collections;

  3. public class NewBehaviourScriptDayNight : MonoBehaviour {

  4.         public float SunSpeed;

  5.         // Use this for initialization
  6.         void Start () {
  7.         
  8.         }
  9.         
  10.         // Update is called once per frame
  11.         void Update () {
  12.         
  13.                 float RotationX = transform.localRotation.eulerAngles.x;
  14.                 float RotationY = transform.localRotation.eulerAngles.y;
  15.                 float RotationZ = transform.localRotation.eulerAngles.z;
  16.                 transform.localRotation = Quaternion.Euler (new Vector3 (RotationX, RotationY + Time.deltaTime * Time.timeScale * SunSpeed, RotationZ));

  17.         }
  18. }
複製代碼


個人簽名
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

手機版|Archiver|植物油氣

GMT+8, 2024-9-20 02:54 AM , Processed in 0.051388 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表