Skip to content

Instantly share code, notes, and snippets.

概要

unity1week でのソースコード公開をTwitterのタイムライン上で観測したので、自分もソースコードを公開 したら、意外と反響があってびっくりしました。
一方実行できるプロジェクトファイルも解説もなく野離しで不親切すぎたので、ちょっとだけ文字を入れようと思いました。

前置き

  • あまり期待しないでください
  • 名前空間はCleanArchitecture (のサンプルレイヤー) っぽいですが、MVPに近そうです。この辺りあんまり自信ないです
  • 何かあれば色々ご意見いただけたらと思います (リプでもコメントでも)

主要レイヤーの責務

using DG.Tweening;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
[RequireComponent(typeof(TextMeshProUGUI))]
public class TextAnimation : MonoBehaviour, IDragHandler, IBeginDragHandler
{
private TextMeshProUGUI text;
private TextMeshProUGUI Text => text ?? (text = GetComponent<TextMeshProUGUI>());
application/vnd.unity.graphview.elements {
"m_Groups": [],
"m_StickyNotes": [],
"m_SourceGraphGuid": "83338292289fb41869a79d3104a904bc",
"m_SerializableNodes": [
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.AddNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"f9b1cb0c-8872-4164-bc51-95eaf5aecffb\",\n \"m_GroupGuidSerialized\": \"00000000-0000-0000-0000-000000000000\",\n \"m_Name\": \"Add\",\n \"m_NodeVersion\": 0,\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -1378.0,\n \"y\": -48.0000114440918,\n \"width\": 208.0,\n \"height\": 302.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\
application/vnd.unity.graphview.elements {
"m_Groups": [],
"m_StickyNotes": [],
"m_SourceGraphGuid": "4b2302768c9574229bd0896092763e58",
"m_SerializableNodes": [
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.MultiplyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"24a56deb-fab4-4b37-ad56-7016f73e62ec\",\n \"m_GroupGuidSerialized\": \"00000000-0000-0000-0000-000000000000\",\n \"m_Name\": \"Multiply\",\n \"m_NodeVersion\": 0,\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -752.0,\n \"y\": 169.0,\n \"width\": 208.0,\n \"height\": 302.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n
using Cinemachine;
using UnityEngine;
public class PlayerEffect : MonoBehaviour
{
[SerializeField] private CinemachineImpulseSource cinemachineImpulseSource;
public CinemachineImpulseSource CinemachineImpulseSource => cinemachineImpulseSource;
void OnDamage()
{
using Cinemachine;
using UnityEngine;
[RequireComponent(typeof(Collider2D))]
public class SwitchVirtualCameraArea : MonoBehaviour
{
[SerializeField] private CinemachineVirtualCamera targetVirtualCamera = default;
private CinemachineVirtualCamera TargetVirtualCamera => targetVirtualCamera;
private CinemachineBrain cinemachineBrain;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;
public class BuildSettingScenesUpdater : AssetPostprocessor
{
private const string sceneDir = "Scenes";
private const string initialLoadScene = "Scenes/Title.unity";
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;
public class BuildSettingScenesCreator
{
private const string sceneDir = "Scenes";
private const string initialLoadScene = "Scenes/Title.unity";
using DG.Tweening;
using UnityEngine;
[RequireComponent(typeof(ParticleSystem))]
public class ParticleStartSizeTween : MonoBehaviour
{
void Start()
{
ParticleSystem particle = this.GetComponent<ParticleSystem>();
using System;
using System.Collections.Generic;
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
// see also : http://dotween.demigiant.com/documentation.php
public class DOTextSample : MonoBehaviour
{
public Text Text;