public static V_Object CreateSkeleton(Vector3 position, Material material) { V_Object instancedObject = V_Object.CreateObject(); GameObject gameObject = new GameObject("Skeleton", typeof(MeshFilter), typeof(MeshRenderer)); Transform instantiatedTransform = gameObject.transform; instantiatedTransform.position = position; //Transform instantiatedTransform = UnityEngine.Object.Instantiate(SpriteHolder.instance.t_pfV_Skeleton, position, Quaternion.identity); V_IObjectTransform transform = new V_ObjectTransform(instantiatedTransform); instancedObject.AddRelatedObject(transform); V_IObjectTransformBody transformBody = new V_ObjectTransformBody(instantiatedTransform, material); instancedObject.AddRelatedObject(transformBody); instancedObject.AddRelatedObject(new V_IHasWorldPosition_Class(transform.GetPosition)); V_UnitSkeleton unitSkeleton = new V_UnitSkeleton(1f, transformBody.ConvertBodyLocalPositionToWorldPosition, transformBody.SetBodyMesh); instancedObject.AddRelatedObject(unitSkeleton); instancedObject.AddActiveLogic(new V_ObjectLogic_SkeletonUpdater(unitSkeleton)); V_UnitAnimation unitAnimation = new V_UnitAnimation(unitSkeleton); instancedObject.AddRelatedObject(unitAnimation); return(instancedObject); }
public static V_Object CreateObjectGameObject(GameObject gameObject) { V_Object instancedObject = V_Object.CreateObject(); Transform instancedTransform = gameObject.transform; V_IObjectTransform instanceTransform = new V_ObjectTransform(instancedTransform); instancedObject.AddRelatedObject(instanceTransform); instancedObject.AddRelatedObject(new V_IHasWorldPosition_Class(instanceTransform.GetPosition)); return(instancedObject); }
public static V_Object CreateObjectPrefab(GameObject prefab, Vector3 position) { V_Object instancedObject = V_Object.CreateObject(); Transform instancedTransform = UnityEngine.Object.Instantiate(prefab, position, Quaternion.identity).transform; V_IObjectTransform instanceTransform = new V_ObjectTransform(instancedTransform); instancedObject.AddRelatedObject(instanceTransform); instancedObject.AddRelatedObject(new V_IHasWorldPosition_Class(instanceTransform.GetPosition)); return(instancedObject); }